zoukankan      html  css  js  c++  java
  • Event Listener's Adapter Classes

    摘自:
        http://www.ntu.edu.sg/home/ehchua/programming/java/J4a_GUI.html
    
    Refer to the WindowEventDemo, a WindowEvent listener is required to implement the WindowListener interface,
    which declares 7 abstract methods. Although we are only interested in windowClosing(), we need to provide
    an empty body to the other 6 methods in order to compile the program. This is tedious.   当实现例如WindowListener接口的时候,虽然只需要用到其中的一个函数,但是却需要将其他的函数都写出,这样非常多余。 An adapter class called WindowAdapter is therefore provided, which implements the WindowListener interface
    and provides default implementations to all the 7 abstract methods. You can then derive a subclass from
    WindowAdapter and override only methods of interest and leave the rest to their default implementation.   有了adapter类之后,就只需要写出需要实现的方法就行,其他不需要使用的函数就不用写出。
    import java.awt.*; import java.awt.event.*; // An AWT GUI program inherits the top-level container java.awt.Frame public class WindowEventDemoAdapter extends Frame { private TextField tfCount; private int count = 0; /** Constructor to setup the GUI */ public WindowEventDemoAdapter () { setLayout(new FlowLayout()); add(new Label("Counter")); tfCount = new TextField("0", 10); tfCount.setEditable(false); add(tfCount); Button btnCount = new Button("Count"); add(btnCount); btnCount.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { ++count; tfCount.setText(count + ""); } }); // Allocate an anonymous instance of an anonymous inner class // that extends WindowAdapter. // "this" Frame adds the instance as WindowEvent listener. addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); // Terminate the program } }); setTitle("WindowEvent Demo"); setSize(250, 100); setVisible(true); } /** The entry main method */ public static void main(String[] args) { new WindowEventDemoAdapter(); // Let the constructor do the job } } Similarly, adapter classes such as MouseAdapter, MouseMotionAdapter, KeyAdapter, FocusAdapter are available for
    MouseListener, MouseMotionListener, KeyListener, and FocusListener, respectively. There is no ActionAdapter
    for ActionListener, because there is only one abstract method (i.e. actionPerformed())
    declared in the ActionListener interface. This method has to be overridden and there is no need for an adapter.
  • 相关阅读:
    Java代码输出到txt文件(申请专利贴源码的必备利器)
    Vmware10组建局域网
    Ubuntu14.04更换阿里云源
    Ubuntu16.04如何彻底删除Apache2
    HustOJ平台搭建
    Centos 7 联想Y430P无线网卡驱动安装 过程参考
    Windows远程CentOS桌面
    centos 7 查看系统/硬件信息及运维常用命令+联想Y430P无线网卡驱动安装
    zookeeper工作原理、安装配置、工具命令简介
    centos 7 安装五笔输入法
  • 原文地址:https://www.cnblogs.com/helloworldtoyou/p/5203578.html
Copyright © 2011-2022 走看看