现在的位置: 首页 > 综合 > 正文

Java捕获窗口状态事件

2014年02月26日 ⁄ 综合 ⁄ 共 1072字 ⁄ 字号 评论关闭

package com.han;

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

import javax.swing.JFrame;

/**
 * 捕获窗口状态事件
 * @author HAN
 *
 */
public class WindowEvent_2 extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2809729177140674307L;

	public WindowEvent_2() {
		// TODO Auto-generated constructor stub
		addWindowStateListener(new WindowStateListener() {

			@Override
			public void windowStateChanged(WindowEvent e) {
				// TODO Auto-generated method stub
				int oldState = e.getOldState();
				int newState = e.getNewState();
				String from = null;
				String to;
				switch (oldState) {
				case Frame.NORMAL:
					from = "正常化";
					break;
				case Frame.MAXIMIZED_BOTH:
					from = "最大化";
					break;
				case Frame.ICONIFIED:
					from = "图标化";
					break;
				}
				switch (newState) {
				case Frame.NORMAL:
					to = "正常化";
					break;
				case Frame.MAXIMIZED_BOTH:
					to = "最大化";
					break;
				default:
					to = "图标化";
					break;
				}
				System.out.println(from + "---->" + to);
			}
			
		});
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WindowEvent_2 frame = new WindowEvent_2();
		frame.setTitle("捕获窗口状态事件");
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(0, 0, 300, 100);
	}

}

抱歉!评论已关闭.