如何在JMenuItem上调用dispose()?

Lio*_*ion 2 java swing dispose actionlistener jmenuitem

我正在尝试编写代码,以便当用户单击"文件"选项卡并选择"退出"时,它会退出我构建的整个窗口.

我正在尝试使用该dispose();方法,但它给了我错误"方法dispose()未定义类型new ActionListener()"

继承人的代码

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


    }
Run Code Online (Sandbox Code Playgroud)

我花了大约2个小时在谷歌试图找到它,但我无法让它工作.

此时我已经筋疲力尽了,所以我来到了这里.任何帮助都是相关的.

Dan*_* D. 5

使用ClassName.this.dispose(),如果你的类扩展JFrameJDialog代替简单的调用dispose()或者frame.dispose()如果你有一个frame这样类型的变量.在您的情况下,它是第二个选项:frame.dispose();

这样,你告诉编译器你正在调用dispose()一个Window子类型,而不是一个匿名实现的ActionListener,dispose()无论如何都没有.