자바 스윙 창 사용 하지 않 을 때 정시 종료

자바 swing 클 라 이언 트 프로그램 을 썼 습 니 다. 오 랜 시간 사용 하지 않 을 때 자동 으로 닫 히 고 싶 습 니 다.
어떻게 실현 합 니까?
주 창 을 시작 할 때 다음 과 같은 방법 으로 Frame 에 감청 이 벤트 를 추가 합 니 다.
private void init33() {
		this.addWindowListener(new WindowAdapter() {

			@Override
			public void windowActivated(WindowEvent e) {
				System.out.println("window Activated");
				if (task != null) {
					task.cancel();
					task = null;
				}
				super.windowActivated(e);
			}

			@Override
			public void windowDeactivated(WindowEvent e) {
				System.out.println("window Deactivated");
				if (isLocked) {// over three times and is still locked,meanwhile use
					// try to log in
					if (task != null) {
						task.cancel();
						task = null;
					}
				} else {// first into this if clause(if (timesFail >=
						// LoginUtil.MAX_LOGIN_FAIL_TIMES ))
					task = null;
				}
				if (timer == null) {
					timer = new Timer();
				}
			
				if (task == null) {
					task = new MyTask(QRCodeApp.this);
				}
				timer.schedule(task, Constant.MILLISECONDS_WAIT_WHEN_FAIL);
				System.out.println("    ");
				isLocked = true;
				super.windowDeactivated(e);
			}

			@Override
			public void windowGainedFocus(WindowEvent e) {
				System.out.println("window GainedFocus");
				super.windowGainedFocus(e);
			}

			@Override
			public void windowLostFocus(WindowEvent e) {
				System.out.println("window LostFocus");
				super.windowLostFocus(e);
			}
			
		});
	}

 MyTask 소스 코드:
package com.qr.yj.common;

import com.qr.yj.QRCodeApp;

public class MyTask extends java.util.TimerTask{
	private QRCodeApp frame;
	
	public MyTask(QRCodeApp frame) {
		super();
		this.frame=frame;
	}

	@Override
	public void run() {
		frame.setLocked(false);
		System.out.println("$$$$$");
		frame.dispose();
		System.exit(0);
	}
}

 설명:
(1)Constant.MILLISECONDS_WAIT_WHEN_FAIL 의 값 600000, int 유형, 단 위 는 밀리초, 즉 600 초 입 니 다.
(2) QRcodeApp 은 JFrame 을 계 승 했 습 니 다. 다음 과 같은 멤버 변수 가 있 습 니 다.
private Timer timer = new Timer();
	private MyTask task = null;
	private boolean isLocked = false;

 배경 로그:
window Activated
window Deactivated
시작 시간
window Activated
window Deactivated
시작 시간
$$$$$
 
프로그램 소스 코드 첨부 파일 참조: qrcodeswing.zip
의존 하 는 jar 패키지: io 0007 - findprogess-0.0.8.4-SNAPSHOT.jar,
메모: 프로그램 은 maven 구축 을 사용 합 니 다.

좋은 웹페이지 즐겨찾기