所以我做了一个简单的程序,在框架的顶部有一个基本菜单,现在我只需要在每个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);
但是,这似乎不起作用,我认为当单击菜单项时,此代码将创建一个小的弹出窗口。
可以发现任何错误,因为我似乎无法。
最佳答案
建议:不用添加单独的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);
}
});
我还建议,不要在弹出菜单上设置
EXIT_ON_CLOSE
,而是在应用程序的主框架上进行设置,然后直接调用theMainFrame.dispose()
。