資源簡介
多線程的龜兔賽跑程序,有動畫
部分程序import java.awt.*;
import javax.swing.*;
import java.net.*;
import java.awt.event.*;
public class Race extends JApplet implements ActionListener{
JButton b=new JButton("開始");
JButton b1=new JButton("復位");
JPanel p=new JPanel();
JLabel message=new JLabel();
JLabel message1=new JLabel();
int rx=0,tx=0;
Image tortoise,rabbit;
int h,w;
Thread t,r;
代碼片段和文件信息
//作者:吳育鋒
import?java.awt.*;
import?javax.swing.*;
import?java.net.*;
import?java.awt.event.*;
public?class?Race?extends?Japplet?implements?ActionListener{
JButton?b=new?JButton(“開始“);
JButton?b1=new?JButton(“復位“);
JPanel?p=new?JPanel();
JLabel?message=new?JLabel();
JLabel?message1=new?JLabel();
int?rx=0tx=0;
Image?tortoiserabbit;
int?hw;
Thread?tr;
public?void?init(){
Container?c=getContentPane();
c.setLayout(new?GridLayout(31));
b.addActionListener(this);
b1.addActionListener(this);
b1.setEnabled(false);
p.add(b1);
p.add(b);
p.add(message);
p.add(message1);
c.add(p);
try{
tortoise=getImage(getDocumentbase()“gui.jpg“);
rabbit=getImage(getDocumentbase()“tu.jpg“);
}catch(Exception?e){}
h=getHeight();
w=getWidth();
r=new?Rabbit(this);
t=new?Tortoise(this);
}
public?void?paint(Graphics?g){
super.paint(g);
g.drawImage(tortoisetx60h/3h/3this);
g.drawImage(rabbitrx120h/3h/3this);
if(rx>=w-h/3&&rx>tx)message.setText(“兔子贏得比賽!“);
if(tx>=w-h/3&&tx>rx)message1.setText(“烏龜贏得比賽!“);
if(tx>=w-h/3&&rx>=w-h/3)b1.setEnabled(true);
}
public?void?start(){
}
public?void?setM(String?m){
message.setText(m);
}
public?void?setRx(int?x){
rx=x;
}
public?void?setTx(int?x){
tx=x;
}
public?int?getRx(){
return?rx;
}
public?int?getTx(){
return?tx;
}
public?void?actionPerformed(ActionEvent?e){
String?str=e.getActionCommand();
if(str.equals(“開始“)){
t.start();
r.start();
b.setEnabled(false);
}
else{
r=new?Rabbit(this);
t=new?Tortoise(this);
b.setEnabled(true);
b1.setEnabled(false);
rx=0;
tx=0;
repaint();
message.setText(““);
message1.setText(““);
}
}
}
class?Rabbit?extends?Thread{
Race?race;
int?rx=0;
boolean?wake=true;
public?Rabbit(Race?r){
race=r;
}
public?void?run(){
while(true){
int?flag=(int)(Math.random()*40);
rx=rx+5;
race.setRx(rx);
race.repaint();
if(race.getRx()>=race.getWidth()-race.getHeight()/3)break;
try{
if(flag!=2){
if(!wake){
race.setM(“兔子醒了!“);
wake=true;
}
Thread.sleep(50);
}
else{
race.setM(“兔子睡著了!“);
wake=false;
Thread.sleep(3000);
}
}catch(Exception?e){}
}
}
}
class?Tortoise?extends?Thread{
Race?race;
int?tx=0;
public?Tortoise(Race?r){
race=r;
}
public?void?run(){
while(true){
tx=tx+2;
race.setTx(tx);
race.repaint();
if(race.getTx()>=race.getWidth()-race.getHeight()/3)break;
try{
Thread.sleep(50);
}catch(Exception?e){}
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????24064??2008-03-28?15:53??龜兔賽跑好\1212282822.doc
?????文件???????2810??2007-12-12?20:02??龜兔賽跑好\gui.jpg
?????文件????????932??2008-03-31?13:09??龜兔賽跑好\Rabbit.class
?????文件???????3120??2008-03-31?13:09??龜兔賽跑好\Race.class
?????文件?????????50??2007-12-12?21:59??龜兔賽跑好\Race.html
?????文件???????2719??2008-03-29?10:57??龜兔賽跑好\Race.java
?????文件????????644??2008-03-31?13:09??龜兔賽跑好\Tortoise.class
?????文件???????6081??2007-12-12?20:07??龜兔賽跑好\tu.jpg
?????目錄??????????0??2008-04-29?18:30??龜兔賽跑好
-----------?---------??----------?-----??----
????????????????40420????????????????????9
- 上一篇:javaweb ssm 項目數據腳本
- 下一篇:JavaQQ即時通信系統C/S模式
評論
共有 條評論