繁体   English   中英

一类JAVA中的Window Listener和Action Listener

[英]Window Listener and Action Listener in one class JAVA

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

public class Listener implements ActionListener, WindowListener {

  HERE ALL NEEDED METHODS BY THIS TWO INTERFACES
}

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

这是一个很好的解决方案,如果您尊重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

我可能会这样做:

public class Listener extends WindowAdapter implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
    }

}

更少的代码行,因为您不必强制实现所有WindowListener方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM