单击JMenuItem时执行操作?

The*_*tor 2 java swing actionlistener

所以我在框架的顶部创建了一个带有基本菜单的简单程序,现在我只需要在每个JMenuItem后面放置动作.我努力工作代码,这是我认为可行的:

JMenu file_Menu = new JMenu("File");
JMenuItem fileExit = new JMenuItem("Exit Program"); 
file_Menu.add(fileExit);
fileExit.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ae) {
        JFrame hello = new JFrame("POPUP");
        hello.setSize(100,75);
        hello.setDefaultCloseOperation(hello.EXIT_ON_CLOSE);
        hello.setVisible(true);
    }
});
main_Menu.add(file_Menu);
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,我认为这个代码会在单击菜单项时创建一个小的弹出窗口.

可以发现任何错误,因为我似乎无法.

Dav*_*les 5

建议:不要单独添加ActionListener,只需使用AbstractAction:

JMenuItem fileExit = new JMenuItem(new AbstractAction("Exit Program") {
    public void actionPerformed(ActionEvent ae) {
        JFrame hello = new JFrame("POPUP");
        hello.setSize(100,75);
        hello.setDefaultCloseOperation(hello.EXIT_ON_CLOSE);
        hello.setVisible(true);
    }
});
Run Code Online (Sandbox Code Playgroud)

我还建议,不要EXIT_ON_CLOSE在弹出菜单上设置,而是将其设置在应用程序的主框架上,然后简单地调用动作theMainFrame.dispose().