Swing 下拉菜单怎么用
1、构造方法1:
创建一个无文本的 JMenu 对象
JMenu menu=new JMenu();
构造方法2:
创建一个带有指定文本的 JMenu 对象
JMenu menu=new JMenu("文件");
1、常用方法如下图:

1、创建文件菜单,文件菜单下包含:新建、打开、保存和退出这4个菜单项

2、创建编辑菜单,编辑菜单下包含:撤销、剪贴、复制和自动换行这4个菜单项

3、把菜单加入到窗口中:
frame.setJMenuBar(JMenuBar jMenuBar);



4、Demo25_JMenuBar 类的代码如下:
public class Demo25_JMenuBar extends JMenuBar{
public static void main(String[] args) {
JFrame frame=new JFrame("菜单栏");
frame.setSize(300,200);
frame.setJMenuBar(new Demo25_JMenuBar());
SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
frame.setVisible(true);
}
public Demo25_JMenuBar() {
add(createFileMenu()); //添加“文件”菜单
add(createEditMenu()); //添加“编辑”菜单
setVisible(true);
}
//定义“文件”菜单
private JMenu createFileMenu(){
JMenu menu=new JMenu("文件(F)");
menu.setMnemonic(KeyEvent.VK_F); //设置快速访问符
JMenuItem item=new JMenuItem("新建(N)",KeyEvent.VK_N);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
menu.add(item);
item=new JMenuItem("打开(O)",KeyEvent.VK_O);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));
menu.add(item);
item=new JMenuItem("保存(S)",KeyEvent.VK_S);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
menu.add(item);
menu.addSeparator();
item=new JMenuItem("退出(E)",KeyEvent.VK_E);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.CTRL_MASK));
menu.add(item);
return menu;
}
//定义“编辑”菜单
private JMenu createEditMenu(){
JMenu menu=new JMenu("编辑(E)");
menu.setMnemonic(KeyEvent.VK_E);
JMenuItem item=new JMenuItem("撤销(U)",KeyEvent.VK_U);
item.setEnabled(false);
menu.add(item);
menu.addSeparator();
item=new JMenuItem("剪贴(T)",KeyEvent.VK_T);
menu.add(item);
item=new JMenuItem("复制(C)",KeyEvent.VK_C);
menu.add(item);
menu.addSeparator();
JCheckBoxMenuItem cbMenuItem=new JCheckBoxMenuItem("自动换行");
menu.add(cbMenuItem);
return menu;
}
}
5、SwingUtils 类的代码如下:
public class SwingUtils {
public static void setCenter(JFrame jf) {
int screenWidth=Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight=Toolkit.getDefaultToolkit().getScreenSize().height;
int jframeWidth = 800;
int jframeHeight = 600;
jf.setBounds((screenWidth/2)-(jframeWidth/2), (screenHeight/2)-(jframeHeight/2),
jframeWidth, jframeHeight);
}
}