반응형
자바에서는 Timer 와 TimerTask 를 이용한 주기적인 작업이 가능합니다.
예를 들어 1분에 한번씩 특정 디렉토리를 감시한다던지.
매일 밤 12시에 백업을 실시한다던지...
이런 기능이 필요하다면 Timer 와 TimerTask 를 사용해보세요.
아래 예제는 1초에 한번씩 카운트 라벨이 바뀌는 스윙 프로그램입니다.

import java.util.TimerTask;
import javax.swing.*;
import java.awt.*;
import java.util.Timer;

public class LabelChange {

public static void main(String[] args) {
MyFrame frame = new MyFrame();

Timer timer = new Timer();
//TimerTask, Delay시간, 동작주기
timer.schedule(new LabelChangeTimerTask(frame), 0, (1 * 1000));
}
}

class MyFrame
extends JFrame {

private JLabel label = null;

public MyFrame() {
this.getContentPane().setLayout(new BorderLayout());
label = new JLabel();
this.getContentPane().add(label, BorderLayout.CENTER);
this.setSize(200, 200);
this.setVisible(true);
}

public void setLabelValue(String msg) {
label.setText(msg);
}
}

class LabelChangeTimerTask
extends TimerTask {

private MyFrame frame = null;
private static int cnt = 0;

public LabelChangeTimerTask(MyFrame frame) {
this.frame = frame;
}

public void run() {
cnt++;
frame.setLabelValue(cnt + "");
}
}
<출처:ibm.com/developerworks/kr>

+ Recent posts