본문 바로가기
Java

Thread를 이용한 실시간 시계

by bloodFinger 2019. 12. 14.
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.awt.Graphics;
import java.awt.Font;
import java.lang.Thread;

class Clock extends Frame implements Runnable
{

	public Clock(String title){
	
		setFont(new Font("고딕", Font.BOLD,36));
		setBounds(250,200,400,100);
		setVisible(true);
		setTitle(title);
		
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});

		Thread thread = new Thread(this); //스레드 생성
		thread.start();

	}

	public void paint(Graphics g){
			SimpleDateFormat sdf = new SimpleDateFormat("a hh시 mm분 ss초");
			Date d = new Date();
			g.drawString(sdf.format(d),40,80);
		}



	@Override
	public void run(){
		while(true){
			repaint(); //과부화가 걸릴수 있다 계속해서 객체를 만들고 지우고 만들고 지우고 

			try{
				Thread.sleep(1000);
			}catch(InterruptedException e){
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) 
	{
		new Clock("시계");
	}
}

 

결과창

 

'Java' 카테고리의 다른 글

Network - TCP 통신  (0) 2020.01.16
디자인패턴(템플릿 메소드 패턴 / 팩토리 메소드 패턴)  (0) 2019.12.16
Comparable , Comparator  (0) 2019.12.14
달력 검색  (0) 2019.12.14
Stream  (0) 2019.12.14