今天我们要实现这个关闭窗口的功能,就是点窗口的那个叉叉它会关闭。

设计窗口的事件就是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来用。

匿名类一般是 逻辑简单,语句少,不经常变动,使用匿名类

就知道有这个东西,看得懂别人写的就行了。

windowsEvents的更多相关文章

随机推荐

  1. Hashmap在JDK8中的提升

    HashMap使用key的hashCode()和equals()方法来将值划分到不同的桶里. 桶的数量通常要比map中的记录的数量要稍大.这样 每一个桶包含的值会比較少(最好是一个).当通过key进行 ...

  2. POJ 2545+2591+2247+1338简单水题

    [题意简述]:就是有这种一个序列.就拿当p1 = 2,p2 = 3, p3 = 5,来举例.由这三个数为基准组成的序列是: 2,3,4,5,6,8,9,10,12--如今给你这个序列数组的下标,让你求 ...

  3. C#数据库连接池 MySql SqlServer

    查阅了一天的资料来学习MySql数据库连接池,终于在一篇博文上找到了,自己也整理了一下,希望对大家有用处 1. 建立连接池 using MySql.Data.MySqlClient; using Sy ...

  4. GEO,IGSO,MEO,LEO

    GEO(Geosynchronous Eearth Orbit):地球静止轨道卫星 IGSO(Inclined Geosynchronous Satellite Orbit):倾斜轨道同步卫星 地球同 ...

  5. 在ubuntu18.0下安装qt4.7以及qt-creator安装过程中遇到的坑

    最近的嵌入式Linux系统上要做课程设计= =要用贼老贼老的qt4.7,配环境踩坑都费了我1天时间.....所以记录下来,希望能给和我遇到相同问题的朋友一点帮助 apt-get install g++ ...

  6. Hibernate状态转换

    瞬时态: 对象有new关键字创建,此时还未与Session关联. 持久态: 在执行session.save(bean)或saveOrUpdate()操作后,bean纳入Session的管理范围,这时b ...

  7. HDU3001 Travelling —— 状压DP(三进制)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3001 Travelling Time Limit: 6000/3000 MS (Java/ ...

  8. 织梦首页TAG标签页的仿制

    1,tag标签的作用:主要是为了能够使得用户可以更加精确的找寻到自己所需内容.这种TAG搜索方式,比分类搜索更加的精确.具体以及节省时间. 2,怎么能够合理的优化TAG标签? A:明白网站的TAG标签 ...

  9. Masonry tableviewCell布局

    前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万 ...

  10. NSArray, NSSet, NSDictionary

    一.Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合(集合) NSDic ...