public class ThreadTest2 {
//스레드로 실행이 가능한 클래스 만들기
//2. Runnable을 상속받아 만들기
public ThreadTest2() {}
public static void main(String[] args) {
ClockEx3 ce = new ClockEx3(1, 1);
//Runnable 상속받아 생성된 스레드 클레스는 Thread 객체를 만들어야 한다.
Thread tt1 = new Thread(ce);
tt1.start();
ClockEx3 ce2 = new ClockEx3(400, 1);
Thread tt2 = new Thread(ce2);
tt2.start();
ClockEx3 ce3 = new ClockEx3(1, 200);
Thread tt3 = new Thread(ce3);
tt3.start();
}
}
=====================================================================
화면2.
import java.awt.Font;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JLabel;
//Runnable 상속, run메소드 오버라이딩
public class ClockEx3 extends JFrame implements Runnable{
JLabel timeLbl = new JLabel();
Font fnt = new Font("Serif", Font.BOLD, 100);
public ClockEx3(){}
public ClockEx3(int x, int y){
add(timeLbl, "Center");
timeLbl.setFont(fnt);
setTime();
setBounds(x, y, 400, 200);
// pack();
setVisible(true);
}
public void run(){
while(true){
try{Thread.sleep(1000);}catch(Exception e){}
setTime();
}
}
public void setTime(){
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
String timeStr = "";
if(hour<10){
timeStr="0"+hour+":";
}else{
timeStr=hour+":";
}
if(minute<10){
timeStr+="0"+minute+":";
}else{
timeStr+=minute+":";
}
if(second<10){
timeStr+="0"+second;
}else{
timeStr+=second;
}
timeLbl.setText(timeStr);
}
// public static void main(String[] args) {
// new ClockEx();
//
// }
}
'응용 SoftWare > JAVA' 카테고리의 다른 글
InetAddress Test (0) | 2016.12.23 |
---|---|
Text Edit (0) | 2016.12.23 |
Thread Test 1 (0) | 2016.12.23 |
Class Test (0) | 2016.12.23 |
JSplitPane 예제2 (0) | 2016.12.21 |