菜单在日常的软件使用中是很常见的一种组件,Java Swing中的菜单由 JMenu 类实现,可以包含多个菜单项和带分隔符的菜单。在菜单中,菜单项由 JMenuItem 类表示,分隔符由 JSeparator 类表示。具体怎么使用呢?接下来小编就整理分享给大家,Swing菜单的用法。
一、构造方法
- 构造方法1: 创建一个无文本的 JMenu 对象 JMenu menu=new JMenu();
- 构造方法2: 创建一个带有指定文本的 JMenu 对象 JMenu menu=new JMenu(“文件”);
二、常用方法
三、实例
- 创建文件菜单,文件菜单下包含:新建、打开、保存和退出这4个菜单项
- 创建编辑菜单,编辑菜单下包含:撤销、剪贴、复制和自动换行这4个菜单项
- 把菜单加入到窗口中: frame.setJMenuBar(JMenuBar jMenuBar);
- 代码如下:
package swing;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
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);
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;
}
}
package swing;
import java.awt.Toolkit;
import javax.swing.JFrame;
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);
}
}