빨간색코딩

javax.swing.Timer 로 이벤트 반복 본문

Java

javax.swing.Timer 로 이벤트 반복

빨간색소년 2017. 3. 19. 00:36

학교애들 알려주던거 기록해둔다ㅋㅋ Thread.sleep(1000); 이 이해안된다고!?


참조문서: http://docs.oracle.com/javase/8/docs/api/javax/swing/Timer.html




1. Timer 클래스의 생성자

Timer(int delay, ActionListener listener)


delay : 초기 지연 후에 listener를 설정된 밀리세컨드마다 호출한다.

listener : 호출될 이벤트


2. 소스

이다.


3. 실행결과

메인쓰레드 START

반복문0

반복문1

반복문2

1번째 호출: Sun Mar 19 00:23:14 KST 2017

반복문3

반복문4

2번째 호출: Sun Mar 19 00:23:16 KST 2017

반복문5

반복문6

3번째 호출: Sun Mar 19 00:23:18 KST 2017

반복문7

반복문8

4번째 호출: Sun Mar 19 00:23:20 KST 2017

반복문9

메인쓰레드 END

5번째 호출: Sun Mar 19 00:23:22 KST 2017


4. 해석

타이머가 2초 후에 2초마다 이벤트를 호출해주고 있고 N번째호출이 찍힌다. 저 for문 안에 Thread.sleep(1000); 이 있는 이유는 타이머 객체는 메인쓰레드가 끝나면 자원이 반납되기 때문에, 메인쓰레드를 지연시키는 거다.


만약 메인 쓰레드가 살아있는데 타이머를 끝내고싶으면 t.stop()을 쓰면 된다.

'Java' 카테고리의 다른 글

Collections 프레임워크  (0) 2017.07.04
cui로만 oracle java8 설치하기  (0) 2017.05.26
JVM 아키텍처  (0) 2017.05.24
이클립스 오류 java was started but returned exit code=-805306369  (0) 2017.03.23
어노테이션(Annotation)  (0) 2016.12.24
Comments