쓰레드가 잘 이해되지 않아서요.
1번 쓰레드에 의해서 1초마다 텍스트필드에 시간을 표시 한다면,
코드를 하나 더 만들어서 쓰레드를 별도로 실행하면 2초마다 텍스트필드에 표시가 되어야 하는데요.
생각만큼 되지를 않네요.
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.text.SimpleDateFormat;
public class exe2 extends Frame implements ActionListener,Runnable{
TextField txt1;
TextField txt2;
public static void main(String[] args){
new exe2("쓰레드예제");
}
// 파일 찾기
public void actionPerformed(ActionEvent e){
//생략
}
// 파일 찾기
@Override // 상속관계에 있는 두 클래스의 run 재정의
public void run()
{
try // 1번 쓰레드 : 1초마다 표시
{
while (true)
{
Thread.sleep(1000);
txt1.setText((new Date()).toString());
}
}
catch (InterruptedException e){
txt1.setText("1");
}
try // 2번 쓰레드 : 2초마다 표시 {
while (true)
{
Thread.sleep(2000);
txt2.setText((new Date()).toString());
}
}
catch (InterruptedException e){
txt1.setText("2");
}
}
public exe2(String str){
//-------- 창 만들기 -------
super(str);
setBounds(200,200,1000,500);
setVisible(true);
setLayout(new FlowLayout());
//-------- 창 만들기 -------
//-------- 텍스트필드 만들기 -------
txt1 = new TextField("....",20);
add(txt1);
txt2 = new TextField("....",20);
add(txt2);
//-------- 텍스트필드 만들기 -------
Thread obj = new Thread(this);
obj.start();
}// 클래스 끝
}
1번 스레드와 2번 스레드가 어디있나? 그냥 다 1번 스레드지
while 문 안에 넣어야 하나요?
고생마나요
TT