一个类JAVA中的Window Listener和Action Listener

时间:2015-12-08 14:55:08

标签: java user-interface actionlistener windowlistener

我有java程序,有GUI。我必须为几帧创建动作和窗口监听。我为每一帧创建一个监听器类。像这样:

public class Listener implements ActionListener, WindowListener {

  HERE ALL NEEDED METHODS BY THIS TWO INTERFACES
}

我的问题是这是一个很好的解决方案吗?或者我应该为此创建两个单独的类?我在一个类中创建它,因为我在WindowListener的方法中只有几行代码。

2 个答案:

答案 0 :(得分:0)

如果您尊重https://en.wikipedia.org/wiki/Single_responsibility_principle

,这是一个很好的解决方案

如果你想在动作事件和窗口事件上做同样的事情,一个单独的类是一个不错的选择。

示例:

public class LoggerListener implements ActionListener, WindowListener {

    ...

    @Override
    public void actionPerformed(ActionEvent e) {
       logger.log("Action performed!");
    }

    ...

    @Override
    public void windowOpened(WindowEvent e) {
        logger.log("Window opened!");
    }

}

但是如果你想做不同的事情(例如,当执行动作时记录并在打开某个窗口时显示消息),创建两个不同的类要好得多。一个可以扩展WindowAdapter,另一个可以实现ActionListener

答案 1 :(得分:-1)

我可能会这样做:

public class Listener extends WindowAdapter implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
    }

}

更少的代码行,因为您没有被迫实施所有WindowListener方法。