windowsEvents
今天我们要实现这个关闭窗口的功能,就是点窗口的那个叉叉它会关闭。
设计窗口的事件就是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的更多相关文章
随机推荐
- 【转载】SOAP协议介绍
SOAP是用在分散或分布的环境中交换信息的简单的协议,它是一个基于XML的协议,包括三个部分:封装定义了一个描述消息中包含什么内容以及如何处理它们的框架,编码规则用于表示应用程序定义的数据类型的实例, ...
- 【Java集合源代码剖析】HashMap源代码剖析
转载请注明出处:http://blog.csdn.net/ns_code/article/details/36034955 您好,我正在參加CSDN博文大赛,假设您喜欢我的文章.希望您能帮我投一票.谢 ...
- FileWriter简单用法并记录日志
import java.io.*; import java.util.Date; /** * Created by Administrator on 2018/4/6. */ public class ...
- Python代码分析工具
Python代码分析工具:PyChecker.Pylint - CSDN博客 https://blog.csdn.net/permike/article/details/51026156
- BindException 无法指定被请求的地址
Caused by: java.net.BindException: Problem binding to [hadoop3:8096] java.net.BindException: 无法指定被请求 ...
- get the page name from url
https://stackoverflow.com/questions/1874532/better-way-to-get-page-name The way I interpret the ques ...
- svn 添加用户名密码
1. 找到svn安装路径 我的是 /opt/svn/repositories/ (如果不知道,可以搜索 :find / -name authz) 2.进入该目录的conf,其中包含authz.pas ...
- GC回收算法--当女友跟你提分手!
Java语言引入了垃圾回收机制,让C++语言中令人头疼的内存管理问题迎刃而解,使得我们Java狗每天开开心心地创建对象而不用管对象死活,这些都是Java的垃圾回收机制带来的好处.但是Java的垃圾回收 ...
- Ubuntu下搭建基于apache2的gerrit+gitweb服务器
说明:Ubuntu版本12.04 1. 配置gerrit管理帐号 1 sudo adduser gerrit 增加sudo权限: 1 sudo usermod -a -G sudo gerrit 切换 ...
- less 语法
1 变量 less的变量使用@开头 1.1 demo @colorRed:red; @colorBlue:blue; .demo{ color:@colorRed; background-color: ...