자바 스윙 창 사용 하지 않 을 때 정시 종료
어떻게 실현 합 니까?
주 창 을 시작 할 때 다음 과 같은 방법 으로 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 구축 을 사용 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JAVA](Swing) 입력 받고 HTTP 요청 보내기 (GET, POST)문자열 입력받기 메이븐 추가 + jackson 추가 (IntelliJ) HTTP 요청 (HttpURLConnection) Java Swing을 이용해 문자열을 입력 받고 해당 문자열을 HTTP 요청 보내는 과정을 설...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.