Java里Swing的窗口事件练习代码(9)
程序员文章站
2024-03-19 07:58:39
...
如果要对窗体进行监听,需要实现WindowListener
接口的七个方法,方法名称如下:
* windowOpened:窗体被打开时触发<br/>
* windowClosing:窗体将要被关闭时触发<br/>
* windowClosed:窗体已经被关闭时触发<br/>
* windowIconified:窗体被最小化时触发<br/>
* windowDeiconified:窗体恢复为正常大小时触发<br/>
* windowActivated:窗体被**时触发<br/>
* windowDeactivated:窗体不再处于**状态时触发
参考的代码如下
package top.linksinke.demo;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
* WindowEvent 窗体事件的使用 <br/>
* create by LINKSINKE on 2020/2/29
*/
public class WindowEventTest extends JFrame {
public WindowEventTest() {
// 设置close按钮的操作(关闭窗口并停止程序的运行)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口默认打开的位置和大小
this.setBounds(20, 20, 300, 300);
// 添加窗体事件监听
this.addWindowListener(new MyWindowListener());
// 设置窗口为显示状态(true:代表为显示状态,false:代表为不显示状态)
this.setVisible(true);
}
/**
* 自定义的窗口简体类<br/>
* windowOpened:窗体被打开时触发<br/>
* windowClosing:窗体将要被关闭时触发<br/>
* windowClosed:窗体已经被关闭时触发<br/>
* windowIconified:窗体被最小化时触发<br/>
* windowDeiconified:窗体恢复为正常大小时触发<br/>
* windowActivated:窗体被**时触发<br/>
* windowDeactivated:窗体不再处于**状态时触发
*/
class MyWindowListener implements WindowListener {
// 窗体被打开时触发
@Override
public void windowOpened(WindowEvent e) {
JOptionPane.showMessageDialog(WindowEventTest.this, "窗体被打开了");
}
// 窗体将要被关闭时触发
@Override
public void windowClosing(WindowEvent e) {
JOptionPane.showMessageDialog(WindowEventTest.this, "窗体将要被关闭");
}
// 窗体已经被关闭时触发
@Override
public void windowClosed(WindowEvent e) {
JOptionPane.showMessageDialog(WindowEventTest.this, "窗体已经被关闭了");
}
// 窗体被最小化时触发
@Override
public void windowIconified(WindowEvent e) {
JOptionPane.showMessageDialog(WindowEventTest.this, "窗体被最小化显示了");
}
// 窗体恢复为正常大小时触发
@Override
public void windowDeiconified(WindowEvent e) {
JOptionPane.showMessageDialog(WindowEventTest.this, "窗体已恢复正常的显示大小");
}
// 窗体被**时触发
@Override
public void windowActivated(WindowEvent e) {
System.out.println("窗体被**了");
}
// 窗体不再处于**状态时触发
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("窗体未**,请**使用");
}
}
public static void main(String args[]) {
JFrame jframe = new WindowEventTest();
}
}
截取几个代码运行的效果图吧
-
打开时候的
-
关闭窗口前时候的
-
最小化窗口时候的
-
从最小化恢复成正常显示时候的
-
窗口被关闭之后的
对了还有一种情况就是窗体已经关闭了触发的那个事件windowClosed:窗体已经被关闭时触发
需要设置下面这样才可以显示那个窗体关闭的弹窗,注意下面这种只会释放窗体资源,并不会停止程序
修改好close关闭按钮的操作,再次运行后效果
上一篇: js实现贪吃蛇小游戏