资源简介

java语言编写的龟兔赛跑小程序 采用多线程和图形用户界面

资源截图

代码片段和文件信息

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.*;
import javax.swing.ImageIcon;
import java.awt.Image; 

import javax.swing.ImageIcon; 
import javax.swing.Jframe; 
import javax.swing.JLabel; 
import javax.swing.Jframe;
import javax.swing.JOptionPane;

//定义一个Jframe窗体作为显示载体
public class TestTortoiseRabbit extends Jframe {

private static final long serialVersionUID = 987654321L;

static final int MAX_LENGTH = 700;//设置跑道长度
   // Image rIcon=Toolkit.getDefaultToolkit().getImage(“rabit1.gif“);
    //rIcon.set
private JButton begin;
private JButton exit;
private Rabbit rabbit;
private Tortoise tortoise;

private JLabel stateOfRabbit;

private JLabel winner;//设置窗体载体上的部件
    
   
public TestTortoiseRabbit() {
 
super(“龟兔赛跑“);
setLayout(null);
setBounds(200 150 800 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
 ImageIcon pic1=new ImageIcon(“rabit1.gif“);
    pic1.setImage(pic1.getImage().getScaledInstance(100100Image.SCALE_DEFAULT)); 
    ImageIcon pic2=new ImageIcon(“tor.gif“);
    pic2.setImage(pic2.getImage().getScaledInstance(100100Image.SCALE_DEFAULT)); 
 begin = new JButton(“开始“);
 exit = new JButton(“退出“);
rabbit = new Rabbit(pic1);
 tortoise = new Tortoise(pic2);

 stateOfRabbit = new JLabel();

//private JLabel winner;

add(rabbit);
rabbit.setBounds(20 100 100 100);
add(tortoise);
tortoise.setBounds(20 200 100 100);
add(stateOfRabbit);
stateOfRabbit.setBounds(300 50 100 20);

add(begin);begin.setBounds(20 400 80 30);
add(exit);exit.setBounds(100 400 80 30);//加入部件并设置初值

setVisible(true);

begin.addActionListener(new ActionListener() {//开始按钮设置监听

public void actionPerformed(ActionEvent e) {
new Thread(rabbit).start();
new Thread(tortoise).start();
begin.setVisible(false);
stateOfRabbit.setText(“兔子跑起来了!“);
}//按下开始后龟兔开始跑
});

exit.addActionListener(new ActionListener() {//退出键设置监听

public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});

}

public static void main(String[] args) {
new TestTortoiseRabbit();
}//main函数开始,新建窗体载体对象


class Tortoise extends JLabel implements Runnable {

//创建乌龟类,继承JLabel,实现 Runnable接口  创建新线程

private static final long serialVersionUID = 12345678L;

public Tortoise(String name) {
super(name);
}

public Tortoise(Icon icon) {
super(icon);
setSize(100 40);
}

boolean stop;
int speed = 2;
int x y;

public void run() {
x = getLocation().x;
y = getLocation().y;//设置参数,speed设置前进速度,x、y为乌龟坐标
while (!stop) {
x += speed;
setLocation(x y);//X坐标加速度,然后重新定位,实现移动
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (x >= MAX_LENGTH) {//设置乌龟到达终点事件

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9636  2011-12-13 09:41  龟兔赛跑\rabit1.gif

     文件       4862  2012-03-28 21:25  龟兔赛跑\TestTortoiseRabbit.java

     文件      13558  2011-12-13 09:40  龟兔赛跑\tor.gif

     目录          0  2011-12-13 09:46  龟兔赛跑

----------- ---------  ---------- -----  ----

                28056                    4


评论

共有 条评论