用窗口事件处理对比事件适配器类

我们大家都知道窗口事件处理指的是什么,java中我们都清楚的记得WindEvent这个类名,它可以产生窗口事件事件源,也包括了window的子类然后用windowlistener来监听,下面是一个简单窗口事件处理代码:

import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;

public class Test extends JFrame implements WindowListener{
 public Test(String title){
  super(title);
  addWindowListener(this);
 }

 public void windowActivated(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("1");
 }

 public void windowClosed(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("2");
 }

 public void windowClosing(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("3");
 }

 public void windowDeactivated(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("4");
 }

 public void windowDeiconified(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("5");
 }

 public void windowIconified(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("6");
 }

 public void windowOpened(WindowEvent e) {
  // TODO Auto-generated method stub
  System.out.println("8");
 }
 public static void main(String[] args){
  Test frame=new Test("TestWINDON event");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setSize(100,80);
  frame.setVisible(true);
 }
 
}

这样的感觉你也明白吧?很烦是吗?你一定会想窗口打开情况或者关闭情况如果我不要怎么办?是不是感觉代码累赘了?像负面性的东西让你觉得恶心,如果这个时候你只需要一个打开窗口情况那?这个时候就想想事件适配器类吧,更多的时候我愿意将它称为事件裁剪类,它可以根据我们的需要,选择性的选择我们需要的接口中的抽象方法,而不是全部实现。比如下面的代码:

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class TestAdapter extends JFrame{
 public TestAdapter(String title){
  super(title);
  addWindowListener(new MyListener());
 }
 public static void main(String[] args){
  TestAdapter frame=new TestAdapter("TestWindowAdapter");
  frame.setSize(200,100);
  frame.setVisible(true);
 }
 class MyListener extends WindowAdapter{
  public void windowClosing(WindowEvent event){
   System.out.println("Window closing");
   System.exit(0);
  }
 }
没有像上面的代码一样那样恶心了吧?

后记:在让他运行了这2个程序之后,他便恍然大悟,明白了到底上面是事件适配器类。我们学IT的,很多时候会学了一些新东西,然后忘了一些旧东西。我把它写在我的BLOG里算是对自己知识的温习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值