我想在WindowsListener方法中引用JFrame(这是类本身)。有什么办法吗?

    diag_ap.addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            this.setEnabled(true); //does not work
        }
    });


我希望调用该类框架并将其禁用,以便唯一可以按下的是JDialog框。

最佳答案

this方法中使用new WindowAdapter().windowClosing(event)关键字引用您创建的WindowAdapter对象。

要在WindowAdapter中引用JFrame的对象,应使用MyJFrame.this。因此,代码应该是

diag_ap.addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            MyJFrame.this.setEnabled(true); // replace MyJFrame with name of your JFrame
        }
    });

07-25 23:19