Java里Swing的窗口事件练习代码(9)

如果要对窗体进行监听,需要实现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关闭按钮的操作,再次运行后效果
    在这里插入图片描述

发布了68 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_29001539/article/details/104578999
今日推荐