Thread 작동 의문이여...
초코우유
컴파일이상이 없고여,,,실행하면 난수를 줘서 캔버스에 색깔과 위치 크기 모두 변화는데 일일히 그리기 버튼을 눌러야 됩니다.
그래서 thread 를 생성해서 그리기 버튼 눌르면 10번 자동으로 실행되게 할려고 하는데 안되네여...가르쳐 주세여,,,
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class CanvasEx extends Frame implements ActionListener{
protected InnerCanvas can = new InnerCanvas();
protected Button b = new Button(그리기);
protected Button b1 = new Button(종료);
Thread th = new Thread();
public CanvasEx(){
Panel p = new Panel();
p.add(b);
p.add(b1);
add(can,Center);
add(p,South);
setSize(300,300);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
b.addActionListener(this);
b1.addActionListener(this);
}
public void run(){
try{
for(int i=0;i10;i++){
th.sleep(10);
}
}
catch(InterruptedException e){
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e){
can.repaint();
Object ob = e.getSource();
if(ob==b1){
System.exit(0);
}
else if(ob==b){
th.start();
}
}
class InnerCanvas extends Canvas{
public void paint(Graphics g){
Random rd = new Random();
int x1 = rd.nextInt(100);
int y1 = rd.nextInt(100);
int x2 = rd.nextInt(255);
int y2 = rd.nextInt(255);
g.setColor(new Color(y1,x2,y2));
g.fillRect(x1,y1,x2,y2);
}
}
public static void main(String args[]){
new CanvasEx();
}
}
-
딸기맛캔디
음.. 그리구 중간에 sleep는 static방식으로 액세스해야합니다^^;
th.sleep(10); Thread.sleep(10); 일케용^^; -
난초
음.. 다들 awt나 swing쪽을 많이 하시네요;;;; 난 잘모르는데;; 기본뿐이.. thread라...
한번 확인해보고 답변 드릴께요;;