【问题标题】:Java Inner class listener access other inner class calling itJava内部类监听器访问其他调用它的内部类
【发布时间】:2015-03-21 20:17:46
【问题描述】:

所以我有这个代码:

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,但也许我在这里太复杂了。 你能帮助我吗? 谢谢。

【问题讨论】:

    标签: java actionlistener inner-classes


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多