class中的JButton ActionListener 1,在class中调用ActionListener时做一些事情 2

JButton ActionListener in class 1, do something when ActionListener invoked in class 2

我有一个 JButtonClass,它在其构造函数中使用 ActionListener 扩展了 JButton。我还有一个包含 HashMap 的 HeadClass。所以,在HeadClass中使用了JButtonClass,这意味着我在创建JButtonClasses时不能给"HeadClass headClass"作为参数,对吧?如果我没记错的话,是关于依赖性和运行时错误的。所以我的问题是,当调用 JButtonClass 中的 ActionListener 时,如何调用 HeadClass 中的方法?

编辑:我无法知道此时按下了哪个按钮,这就是为什么我想添加需要 运行 每个 ActionListener 的 HeadClass 方法,这样无论如何按下 JButton,调用 HeadClass 中的相同方法。

我想你的思维方式可能会让人想起 C++。在 C++ 中,您不能将一个 class 放在另一个里面,等等,因为这会产生一个无限大小的结果。在 Java 中,因为一切都是指针,所以这很好:

class JButtonClass extends JButton {
    JButtonClass(HeadClass headClass) {
        headClass.jbtn = this;
        this.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                headClass.someFunction();
            } 
        });
    }
}

class HeadClass {
    HashMap hashMap;
    JButtonClass jbtn;

    void someFunction() {
        // do stuff with jbtn
    }
}

public static main(String[] args) {
    new JButtonClass(new HeadClass());
}