标签:事件监听 语法 监听器 blog exit windows 功能 颜色 apt
今天我们要实现这个关闭窗口的功能,就是点窗口的那个叉叉它会关闭。
设计窗口的事件就是WindowsEvents,而与之有关的监听器就是WindowsListener
WindowsListener也是个接口,它有7个方法,分别处理windows的不同的事件。 比如windowActivated()window被激活,就是两个窗口,一个是颜色变灰,一个仍是蓝色,然后你用鼠标点那个灰的窗口它变成蓝色这叫激活窗口。 windowClosed() 已经关后做出的反应 windowClosing()正在关闭,这是我们要处理的事件。 windowIconified()卡片化,也是最小化的意思。
看例子代码(内部类的写法):
import java.awt.*; import java.awt.event.*; public class TestWindowClose { public static void main(String[] args) { new MyFrame55("fuck"); } } class MyFrame55 extends Frame { public MyFrame55(String s) { super(s); setBounds(300,300,400,400); setLayout(null); setBackground(new Color(204,204,255)); setVisible(true); addWindowListener(new MyWindowMonitor()); } class MyWindowMonitor extends WindowAdapter { //内部类,因为这个是window关闭的这个事件监听类对于其他类一点关系都没有 public void windowClosing(WindowEvent e) { //重写正在关闭这个事件 setVisible(false); System.exit(0);//存0是正常退出,存-1是非正常退出。 } } }
哎其实这个类和其他的方法有关系吗?除了和这个addWindowListener()所以,除了这个写法,我们还有这样的一种写法,这种写法叫做方法内的类:局部类,也叫匿名的内部类
this.addWindowListener( new WindowAdapter() {//像一个类的类体,但它没有名字 public void windowClosing(WindowEvent e) { setVisible(false); System.exit(-1); } });
这个类是当成WindowAdapter来用。所以语法这样写本质上的意义就是这个类从WindowAdapter继承,我们new了这个类的一个对象出来把它当作WindowAdapter来用。
匿名类一般是 逻辑简单,语句少,不经常变动,使用匿名类
就知道有这个东西,看得懂别人写的就行了。
标签:事件监听 语法 监听器 blog exit windows 功能 颜色 apt
原文地址:http://www.cnblogs.com/wangshen31/p/6942011.html