在Java GUI中创建下拉菜单栏

时间:2017-10-20 02:15:05

标签: java swing awt menuitem

我正在练习使用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);

1 个答案:

答案 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);