Java中,可通过创建JMenu对象作为主菜单,再创建JMenu对象作为二级菜单,然后创建JMenuItem对象添加到二级菜单中,最后将主菜单和二级菜单添加到JMenuBar并设置到JFrame来实现二级菜单项的设置
Java中设置二级菜单项,主要涉及到Swing库中的JMenu和JMenuItem组件,以下是详细的步骤说明:
创建主窗口(JFrame)
需要创建一个JFrame作为主窗口,这是所有菜单和组件的容器。
JFrame frame = new JFrame("二级菜单示例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
创建菜单栏(JMenuBar)
创建一个JMenuBar对象,并将其设置为JFrame的菜单栏。
JMenuBar menuBar = new JMenuBar(); frame.setJMenuBar(menuBar);
创建主菜单(JMenu)
在JMenuBar上添加一个主菜单,文件”菜单。

JMenu fileMenu = new JMenu("文件");
menuBar.add(fileMenu);
创建子菜单(JMenu)
在主菜单下创建一个子菜单,新建”子菜单。
JMenu newSubMenu = new JMenu("新建");
fileMenu.add(newSubMenu);
创建菜单项(JMenuItem)
在子菜单下添加具体的菜单项,新建文件”和“新建目录”。
JMenuItem newFileItem = new JMenuItem("新建文件");
JMenuItem newDirectoryItem = new JMenuItem("新建目录");
newSubMenu.add(newFileItem);
newSubMenu.add(newDirectoryItem);
设置菜单项的行为
为每个菜单项添加动作监听器,以响应用户的点击操作。

newFileItem.addActionListener(e -> System.out.println("新建文件"));
newDirectoryItem.addActionListener(e -> System.out.println("新建目录"));
显示窗口
设置窗口可见。
frame.setVisible(true);
完整代码示例
import javax.swing.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SecondLevelMenuExample {
public static void main(String[] args) {
// 创建主窗口
JFrame frame = new JFrame("二级菜单示例");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
// 创建主菜单
JMenu fileMenu = new JMenu("文件");
menuBar.add(fileMenu);
// 创建子菜单
JMenu newSubMenu = new JMenu("新建");
fileMenu.add(newSubMenu);
// 创建菜单项
JMenuItem newFileItem = new JMenuItem("新建文件");
JMenuItem newDirectoryItem = new JMenuItem("新建目录");
newSubMenu.add(newFileItem);
newSubMenu.add(newDirectoryItem);
// 设置菜单项的行为
newFileItem.addActionListener(e -> System.out.println("新建文件"));
newDirectoryItem.addActionListener(e -> System.out.println("新建目录"));
// 显示窗口
frame.setVisible(true);
}
}
FAQs
Q1: 如何在二级菜单中添加更多的选项?
A1: 要在二级菜单中添加更多的选项,只需在代码中创建新的JMenuItem对象,并将其添加到相应的子菜单中。
JMenuItem anotherItem = new JMenuItem("另一个选项");
newSubMenu.add(anotherItem);
可以为这个新菜单项添加相应的动作监听器。

Q2: 如何为菜单项设置快捷键?
A2: 可以使用setAccelerator方法为菜单项设置快捷键,为“新建文件”菜单项设置Ctrl+N快捷键:
newFileItem.setAccelerator(KeyEvent.VK_N);
这样,用户可以通过按下Ctrl+N来触发该菜单项
