java - 如何在 JMenuItem 上调用 dispose()?

标签 java swing dispose actionlistener jmenuitem

我正在尝试编写代码,以便当用户单击"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);


    }

我在谷歌上花了大约两个小时试图弄清楚它,但我无法让它工作。

此时我已经用尽了所有选择,所以我来到了这里。 感谢任何帮助。

最佳答案

如果您的类扩展了 JFrameJDialog,请使用 ClassName.this.dispose(),而不是简单地调用 dispose()frame.dispose() 如果您有此类类型的 frame 变量。在您的情况下,这是第二个选项: frame.dispose();

这样,您就可以告诉编译器您正在调用 Window 子类型的 dispose(),而不是 ActionListener 的匿名实现。 code>,无论如何它都没有 dispose()

关于java - 如何在 JMenuItem 上调用 dispose()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526473/

相关文章:

java - 打印二维矩阵(数组)java

java - 元语言,如 BNF 或 XML-Schema,用于根据树模型验证树实例

java - 如何更改 ComboBoxEditor 的边框?

java - 为什么我的 Textarea.get 文本不起作用

c# - 无法在单元测试中访问已处置的对象

java - Java中如何真正关闭一个窗口?

java - 解析大于 hdfs block 大小的 XmlInputFormat 元素

java - --patch-module 是否会反射性地显示出来?

java - JComboBox[] 循环在 JApplet 上显示不起作用

java - Java GUI 中的退出冲突