?? 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 + -