📄 menuwindow.java
字号:
import java.awt.*;import java.awt.event.*;public class MenuWindow extends Frame implements ActionListener, ItemListener { TextArea output; PopupMenu popup; public MenuWindow() { MenuBar mb; Menu m1, m2, m3,m1_4; MenuItem mi1_1, mi1_2,mi1_3,mi1_4_1,mi2_2, mi3_1, pmi1, pmi2, mi5_1_duplicate; CheckboxMenuItem mi2_1; addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); output = new TextArea(5, 30); output.setEditable(false); add("Center", output); //创建菜单条。 mb = new MenuBar(); setMenuBar(mb); //创建第一个菜单。各菜单项都带有快捷键。 m1 = new Menu("文件"); mb.add(m1); mi1_1 = new MenuItem("新建"); mi1_1.setShortcut(new MenuShortcut(KeyEvent.VK_N)); m1.add(mi1_1); mi1_2 = new MenuItem("打开"); mi1_2.setShortcut(new MenuShortcut(KeyEvent.VK_O)); m1.add(mi1_2); mi1_3 = new MenuItem("保存"); mi1_3.setShortcut(new MenuShortcut(KeyEvent.VK_S)); m1.add(mi1_3); m1.addSeparator(); //添加分隔线。 m1_4 = new Menu("关闭"); //该菜单项下包含一个子菜单。 m1.add(m1_4); mi1_4_1 = new MenuItem("窗口"); mi1_4_1.setShortcut(new MenuShortcut(KeyEvent.VK_E)); m1_4.add(mi1_4_1); //创建第二个菜单。 m2 = new Menu("编辑"); mb.add(m2); mi2_1 = new CheckboxMenuItem("标尺"); //带复选框的菜单项。 mi2_1.setShortcut(new MenuShortcut(KeyEvent.VK_R)); m2.add(mi2_1); mi2_2 = new MenuItem("全选"); mi2_2.setShortcut(new MenuShortcut(KeyEvent.VK_A)); mi2_2.setEnabled(false); //菜单项设置为失效。 m2.add(mi2_2); //创建一个帮助菜单。 m3 = new Menu("帮助"); mb.setHelpMenu(m3); mi3_1 = new MenuItem("关于..."); m3.add(mi3_1); //创建一个弹出式菜单。 popup = new PopupMenu("A Popup Menu"); add(popup); pmi1 = new MenuItem(" 打开 "); popup.add(pmi1); pmi2 = new MenuItem(" 保存 "); ; popup.add(pmi2); //为所有菜单项注册监听器。 m1.addActionListener(this); m2.addActionListener(this); mi2_1.addItemListener(this); m3.addActionListener(this); mi1_4_1.addActionListener(this); popup.addActionListener(this); //为当前Frame注册鼠标事件监听器,实现显示弹出式菜单的操作。 MouseListener listener = new PopupListener(); addMouseListener(listener); output.addMouseListener(listener); } //鼠标事件监听器类。 class PopupListener extends MouseAdapter { public void mousePressed(MouseEvent e) { maybeShowPopup(e); } public void mouseReleased(MouseEvent e) { maybeShowPopup(e); } private void maybeShowPopup(MouseEvent e) { if (e.isPopupTrigger()) { popup.show(e.getComponent(), e.getX(), e.getY()); } } } //各菜单项的事件处理方法。 public void actionPerformed(ActionEvent e) { output.append("\"" + e.getActionCommand() + "\" action detected in menu labeled \"" + ((MenuItem)(e.getSource())).getLabel() + "\"." + "\n"); } //带复选框的菜单项的事件处理方法。 public void itemStateChanged(ItemEvent e) { output.append("Item state change detected on item \"" + e.getItem() + "\" (state is " + ((e.getStateChange() == ItemEvent.SELECTED)? "selected)." : "deselected).") + "\n"); } public static void main(String[] args) { MenuWindow window = new MenuWindow(); window.setTitle("My Application"); window.setSize(450, 200); window.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -