我正在练习使用swing和awt导入在Java中创建GUI程序。我的主要课程中的大部分内容都在工作,除了获得一个下拉菜单,其中包含GUI顶部的名为file的选项卡。我有两个代码片段,一个在JPanel类中,另一个在public main()类中。我最终想要一个带保存的文件菜单,并在顶部保存为选项。不需要调用任何东西或添加监听器,只是为了让它们在程序本身上可见。我使用JMenuBar menuBar和JMenu fileMenu来创建它。我究竟做错了什么?下面的片段:
JMenuBar menuBar = new JMenuBar();
JMenuItem saveItem, saveAllItem;
JMenuItem menuItem = new JMenuItem("Save");
setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("File");
saveItem = fileMenu.add("Save");
saveAllItem = fileMenu.add("Save All");
panel.add(menuItem);
setVisible(true);
答案 0 :(得分:0)
不需要将JMenuBar对象添加到JPanel,因为它只与JFrame链接。
您需要将JMenuBar对象传递给JFrame方法 setJMenuBar(),以便在窗口中设置菜单栏。
您可以使用创建JFrame的下拉菜单这段代码:
JMenuBar menuBar = new JMenuBar();
JMenuItem saveItem, saveAllItem;
// Menu
JMenu fileMenu = new JMenu("File");
// Menu Item (Drop down menus)
saveItem = new JMenuItem("Save");
saveAllItem = new JMenuItem("Save All");
// Adding menu items to menu
fileMenu.add(saveItem);
fileMenu.add(saveAllItem);
// adding menu to menu bar
menuBar.add(fileMenu);
// setting menubar at top of the window.
// if you create a object of JFrame in class then code to set JMenuBar to JFrame will be:
// jframe.setJMenuBar(menuBar);
// if class is extending JFrame then it will be like this:
setJMenuBar(menuBar);