Swing 提供 JMenuBar(選單列)、JMenu(選單)、JMenuItem(選單項)構建下拉選單。選單項觸發 ActionEvent,通過 ActionListener 處理。支持多級嵌套子選單、分隔線、快捷鍵、複選框選單項(JCheckBoxMenuItem)。
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("檔案(F)");
fileMenu.setMnemonic(KeyEvent.VK_F);
JMenuItem newItem = new JMenuItem("新建(N)", KeyEvent.VK_N);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));
newItem.addActionListener(e -> createNewFile());
fileMenu.add(newItem);
fileMenu.addSeparator();
JMenuItem exitItem = new JMenuItem("退出(X)");
exitItem.addActionListener(e -> System.exit(0));
fileMenu.add(exitItem);
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
彈出式選單(JPopupMenu)可在組件上右鍵顯示,使用方式相似。合理設計選單結構能提升桌面應用易用性。