본문 바로가기

자바

Swing 디지털 시계1 - Thread 이용

반응형

Swing으로 만든 디지털 시계

------------------------------
package s10.clock;

import java.awt.FlowLayout;
import java.awt.Font;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class DigitalClock extends JFrame implements Runnable {
    private Thread thread;
    private JLabel label;
    private SimpleDateFormat sf;

    public DigitalClock() {
        super("디지털시계");
        
        setLayout(new FlowLayout());
        
        label = new JLabel();
        label.setFont(new Font("Serif", Font.PLAIN, 20));
        sf = new SimpleDateFormat("yyyy년MM월dd일 a hh:mm:ss");
        if (thread == null) {
            thread = new Thread(this);
            thread.start();
        }
        add(label);
        setBounds(100,100,400,100);
        setVisible(true);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args){
        JFrame.setDefaultLookAndFeelDecorated(true);
        new DigitalClock();
    }

    public void run() {
        while (true) {
           label.setText(sf.format(new Date()));
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e){}
        }
    }
}

반응형