我正在尝试编写代码,以便当用户单击"file"选项卡并选择“退出”时,它会退出我构建的整个窗口。
我正在尝试使用 dispose();
方法,但它给了我错误
“new ActionListener() 类型的方法 dispose() 未定义”
代码如下
public static void addLayouts(){
frame = new JFrame();
frame.setSize(600, 600);
frame.setTitle("IPFinder");
GroupLayout groupLayout = new GroupLayout(frame.getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGap(0, 384, Short.MAX_VALUE)
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGap(0, 362, Short.MAX_VALUE)
);
frame.getContentPane().setLayout(groupLayout);
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
JMenu mnFile = new JMenu("File");
menuBar.add(mnFile);
JMenu mnEdit = new JMenu("Edit");
menuBar.add(mnEdit);
JMenuItem mntmCopyResults = new JMenuItem("Copy Results");
mnEdit.add(mntmCopyResults);
JMenu mnAbout = new JMenu("About");
menuBar.add(mnAbout);
JMenuItem mntmAboutIpfinder = new JMenuItem("About IPFinder");
mnAbout.add(mntmAboutIpfinder);
frame.setVisible(true);
JMenuItem mntmExit = new JMenuItem("Exit");
mntmExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
mnFile.add(mntmExit);
}
我在谷歌上花了大约两个小时试图弄清楚它,但我无法让它工作。
此时我已经用尽了所有选择,所以我来到了这里。 感谢任何帮助。
最佳答案
如果您的类扩展了 JFrame
或 JDialog
,请使用 ClassName.this.dispose()
,而不是简单地调用 dispose()
或 frame.dispose()
如果您有此类类型的 frame
变量。在您的情况下,这是第二个选项: frame.dispose();
这样,您就可以告诉编译器您正在调用 Window
子类型的 dispose()
,而不是 ActionListener
的匿名实现。 code>,无论如何它都没有 dispose()
。
关于java - 如何在 JMenuItem 上调用 dispose()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526473/