Java内部类监听器访问其他调用它的内部类

时间:2015-03-21 20:17:46

标签: java actionlistener inner-classes

所以我有这段代码:

public class TabTaches extends JPanel {
    //TabTaches Variables

    TabTaches() {
        // Constructor content
    }

    private class NouvelleTache extends JFrame {
        // Nouvelle Tache Variables

        NouvelleTache() {
            ecouteur = new Ecouteur();

            this.setTitle("Nouvelle tache");
            this.setSize(300, 200);
            this.setLocationRelativeTo(null);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            this.setLayout(new GridLayout(3, 2));

            annuler = new JButton("Annuler");

            annuler.addActionListener(ecouteur);

            this.add(annuler);
        }
    }

    private static class Ecouteur implements ActionListener {
        NouvelleTache nt;

        public void actionPerformed(ActionEvent e) {
            if(((AbstractButton)e.getSource()).getText().equals("Annuler")) {
                Something.dispose();
            }
        }
    }
}

我不知道如何管理Something.dispose(); 我知道您可以使用TabTaches.this.dispose();访问外部类,但我想要关闭的是NouvelleTache。有办法吗? 它在语法上是否正确,还是应该为NouvelleTache创建一个完整的类?我想把它作为内部类,因为我只需要它进入TabTaches,但也许我在这里太复杂了。 你能帮助我吗? 感谢。

1 个答案:

答案 0 :(得分:0)

我通过分离外部类和内部类的监听器来解决它,这样我就可以使用上面描述的方法访问我的nt实例TabTaches.this.dispose(); 我不确定这是否正确,但它确实有效。