2008년 8월 23일 토요일

Applet implements ActionListener, Runnable





import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.Timer;

public class Main extends Applet implements ActionListener, Runnable {
Font f;
Image img;
Button btn_start;
Button btn_stop;
int col=10;
int row=10;
Random mole_random;
Thread thread;
//Timer timer1;

public void init(){

f= new Font("SansSerif", Font.TYPE1_FONT, 15);
//img = getImage(getDocumentBase(), "mogu4.png");
//저의 android.jpg로 사용 님그림으로 바꾸세요.
img = getImage(getDocumentBase(), "android.jpg");

btn_start = new Button("시작");
btn_start.addActionListener(this);
add(btn_start);

btn_stop = new Button("중단");
btn_stop.addActionListener(this);
btn_stop.setEnabled(false);
add(btn_stop);
}

// 필요 없음
// public void start(){
// repaint();
// // timer1.start();
//
// }

public void run(){
// 가장 문제가 있는 부분 for를 사용하면 안됩니다.
// for(int i=0; i<100; i++)
// {
while(true){
mole_random = new Random();
col=mole_random.nextInt(370)+10;
row=mole_random.nextInt(470)+10;
//g.drawImage(img, col, row, this);
repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
// }

}
//필요없음
// public void stop(){
// thread=null;
// }

public void paint(Graphics g){

g.drawRect(2, 2, 400, 500);
g.drawImage(img, col, row, this);
}

public void actionPerformed(ActionEvent e){

if(e.getSource()==btn_start){

btn_stop.setEnabled(true);

thread = new Thread(this);
thread.start();

repaint();

}
if(e.getSource()==btn_stop){
btn_start.setEnabled(true);
btn_stop.setEnabled(false);
//이부분 추가
thread.stop();
}


}

}
//문]
//버튼을 누르면 그림이 무작위로 나타나는 것이 목적인데, 다음과 같이 하면 버튼을 누를때 마다 한번씩만 실행됩니다. 도와주세여

댓글 없음:

댓글 쓰기

-


Sidewinder


World


FishMusic


LaughingBaby