Java添加侦听器以执行不同类中的方法

时间:2017-04-16 19:17:00

标签: java swing methods listener action

我正在构建一个简单的GUI程序。 其中一个类是带有几个按钮的工具栏(JPanel)。另一个类是主窗口,其中包括此工具栏及其按钮。 我正在尝试为每个按钮添加动作侦听器,因此它们在其他组件上执行Window的方法,就像其他JPanels一样。

据我所知,显而易见的解决方案是将监听器添加到Window类中,如下所示:

class Window
{
    private Toolbar toolbar;

    private void *methodOnOtherWindowComponents*() {
        ....;
    }

    // Method to add Listeners on Buttons via anonymous classes
    private void addListeners() {
        toolbar.getButton().addActionListener(
             new ActionListener() {
                 public void actionPerformed(ActionEvent event){
                    *methodOnOtherWindowComponents()*

但是,由于Window类只是为了把事情放在一起,所以添加Listeners似乎太复杂了。

如果我尝试在工具栏类中添加监听器(创建按钮的位置)(更好的解决方案)或单独的类(最理想的解决方案),那么我就无法引用 methodToExecute()在Window类中。

我希望找到一种方法来添加一个像这样的监听器:

void actionPerformed(ActionEvent event, Window w) {
    w.methodOnOtherWindowComponents()
}

有类似的方法吗? 谢谢。

0 个答案:

没有答案
相关问题