资源简介
多线程的龟兔赛跑程序,有动画
部分程序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模式
相关资源
- Java多线程断点Sample
- java 多线程模拟钟表 首创
- 一个小小的JAVA多线程程序
- 多线程矩阵乘法java、win32、pthread三合
- JAVA程序设计 大炮打飞机 福州大学作
- java多线程局域网聊天,服务器+客户端
- java多线程小游戏
- java多线程导出excel千万级别优化
- Java多线程赛马游戏
- 基于java的多线程断点续传程序源代码
- java多线程+Socket+Swing做的局域网聊天程
- 呕心沥血的java复杂聊天室(包括自定
- java多线程综合实验2020年1月武汉理工
- java 多线程 打字游戏
- 张孝祥老师讲解java的多线程的配套
- Android多线程断点续传网络上的音/视频
- java socket通讯例程 多线程读写 可以同
-
多线程的应用ap
plet程序 - java多线程实现坦克大战游戏带声音图
- java利用多线程爬虫查询快递100物流信
- Java网络编程多线程断点带界面选择文
- java面板多线程发牌程序
- java socket多线程聊天
- java多线程文件传输基于swing
- 网络白板源码
- java多线程代码demo
- java 多线程编程 月食效果
- java多线程与高并发视频
- Qt多线程的一个简单
- 多线程web服务器 附实验报告 java
评论
共有 条评论