窗体触发事件之焦点以及状态转换

本文介绍了一个Java示例程序,演示了如何使用WindowFocusListener和WindowStateListener来监听窗体的焦点变化及状态变化。通过两个具体的监听器实现,程序能够打印出窗体获得或失去焦点的消息以及窗体状态从正常、最大化到图标化的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;
import java.awt.event.WindowStateListener;

import javax.swing.JFrame;
class WindowStateListener_Example extends JFrame{
	public WindowStateListener_Example(){//构造方法
		super();
		addWindowStateListener(new MyWindowStateListener());
		}
	private class MyWindowStateListener implements WindowStateListener{
		public void windowStateChanged(WindowEvent e){
			int oldState=e.getOldState();//旧状态
			int newState=e.getNewState();//新状态
			String from="";//标识窗体以前状态的字符串的
			String to="";
			switch(oldState){
			case Frame.NORMAL:
				from="正常化";
				break;
			case Frame.MAXIMIZED_BOTH:
				from="最大化";
				break;
			default:
				from="图表化";
			}
			switch(newState){
			case Frame.NORMAL:
				to="正常化";
				break;
			case Frame.MAXIMIZED_BOTH:
				to="最大化";
				break;
			default:
				to="图标化";
				
			}
			System.out.println(from+"------->"+to);
			
		}
	}
}
public class WindowFocusListener_example extends JFrame{

	public static void main(String[] args) {
		WindowFocusListener_example frame=new WindowFocusListener_example();
		WindowStateListener_Example f=new WindowStateListener_Example();
		frame.setVisible(true);
		f.setVisible(true);
	}
public WindowFocusListener_example(){
	super();
	addWindowFocusListener(new MyWindowFocusListener());//为窗体添加焦点事件监听器
	setTitle("捕获窗体焦点事件");
	setBounds(100,100,500,375);//设置位置和大小
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
 
  class MyWindowFocusListener implements WindowFocusListener{
	public void windowGainedFocus(WindowEvent e){//窗口获得焦点时触发
		System.out.println("窗口获得了焦点");
	}
	public void windowLostFocus(WindowEvent e){
		System.out.println("窗口失去了焦点");
	}
	
}
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值