资源简介
多线程的龟兔赛跑程序,有动画
部分程序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版聊天程序(UDP TCP 多线程)
- java多线程编程 在主线程main中创建两
- java多线程控制的赛跑程序
- 简单多线程一对一聊天程序
- Aandroid 多线程断点续传同时多个大文
- Android多线程文件夹及断点续传
- 一线大厂Java多线程面试120题.pdf
- Java操作Oracle数据库-多线程.rar
- java_concurrency_in_practice_source源代码
- socket多线程文件上传
- Concurrent Programming in Java
- Java多线程编程深入详解.pdf
- Java 并发编程的艺术PDF清晰完整版+源
- 纯Java音乐共享平台
- java多线程+Socket+Swing局域网聊天软件客
- Android后台多任务多线程断点
- java多线程面试题和答案
- java并发编程实战pdf带目录
- dbf转换成xls
- Java多线程设计模式(含源代码、中文
- 模拟公交车运行-java
- 基于C/S架构的在线选课系统
- java实现的主题爬虫
- 最新xUtils3,完美解决Android5.0支持问题
- 知乎爬虫最新版
- android 网络
- Android游戏源码多线程简单实现打地鼠
- 《Java并发编程:设计原则与模式第二
- socket多线程文件上传 完整
- Java多线程编程实战指南设计模式篇
评论
共有 条评论