• Java基础之处理事件——使用适配器类(Sketcher 3 using an Adapter class)


    控制台程序。

    适配器类是指实现了监听器接口的类,但监听器接口中的方法没有内容,所以它们什么也不做。背后的思想是:允许从提供的适配器类派生自己的监听器类,之后再实现那些自己感兴趣的类。其他的空方法会从适配器类中继承,所以无须担心它们。

    修改上一文中的Sketcher类如下:

     1 // Sketching application
     2 import javax.swing.*;
     3 import java.awt.*;
     4 import java.awt.event.*;
     5 
     6 public class Sketcher {
     7   public static void main(String[] args) {
     8      theApp = new Sketcher();                                          // Create the application object
     9    SwingUtilities.invokeLater(new Runnable() {
    10             public void run() {
    11               theApp.createGUI();                                      // Call GUI creator
    12             }
    13         });
    14   }
    15 
    16   // Method to create the application GUI
    17   private void createGUI() {
    18     window = new SketcherFrame("Sketcher");                            // Create the app window
    19     Toolkit theKit = window.getToolkit();                              // Get the window toolkit
    20     Dimension wndSize = theKit.getScreenSize();                        // Get screen size
    21 
    22     // Set the position to screen center & size to half screen size
    23     window.setSize(wndSize.width/2, wndSize.height/2);                 // Set window size
    24     window.setLocationRelativeTo(null);                                // Center window
    25 
    26     window.addWindowListener(new WindowHandler());                     // Add window listener
    27     window.setVisible(true);
    28   }
    29 
    30   // Handler class for window events
    31   class WindowHandler extends WindowAdapter {
    32     // Handler for window closing event
    33     @Override
    34     public void windowClosing(WindowEvent e) {
    35       window.dispose();                                                // Release the window resources
    36       System.exit(0);                                                  // End the application
    37     }
    38   }
    39 
    40   private SketcherFrame window;                                        // The application window
    41   private static Sketcher theApp;                                      // The application object
    42 }

    Sketcher类不再是window事件的监听器,所以不需要实现WindowListener接口。WindowHandler类是window事件的监听器类。WindowHandler类是Sketcher类的内部类,可以访问Sketcher类的所有成员,所以调用window对象的dispose()方法时非常简单-只需要访问顶级类的window域即可。

  • 相关阅读:
    npm启动报错Module not found: Error: Can't resolve 'fs'
    微信小程序
    window.URL对象的使用方式
    flex属性取值
    bindtap方法传参
    centos7安全相关设置
    签名证书
    gitlabci && runner use docker
    sftp 多用户,多目录不同权限设置
    grpc中TLS认证证书问题
  • 原文地址:https://www.cnblogs.com/mannixiang/p/3486115.html
Copyright © 2020-2023  润新知