java图形用户界面模拟龟兔赛跑;要求要有动画

用图形用户界面实现。能设置比赛时间,马匹的数量等等。在任意时间段内马匹的速度是随机的。开始比赛之后以动画显示赛马过程。... 用图形用户界面实现。能设置比赛时间,马匹的数量等等。在任意时间段内马匹的速度是随机的。开始比赛之后以动画显示赛马过程。 展开
 我来答
旁夏侯山0u
推荐于2018-05-07 · TA获得超过237个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:211万
展开全部
设置2个动态图片在写个方法

public void run() {
while (true) {
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-01-04
展开全部
急啊!快啊,追加悬赏分!谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户57236
2018-06-26
知道答主
回答量:1
采纳率:0%
帮助的人:852
展开全部
package 赛跑;
import java.awt.*;
import javax.swing.*;

public class Test extends JFrame {
// 全局变量
static int positionA = 50, positionB = 50, distanceAll = 1600;
static int RecWidth = 50, RecHeight = 50;
static char winner;
static long sleeptime = 300;
static boolean waitA = true, waitB = true, gaming = true, unrepaint = true;

//构造函数
public Test() {
this.setTitle("龟兔赛跑");
this.setBackground(Color.WHITE);
this.setSize(1000, 500);
this.setLocation(0, 200);
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

//绘图函数
public void paint(Graphics g) {
// TODO Auto-generated method stub
g.clearRect(0, 0, 1600, 900);
g.setColor(Color.RED);
g.fillRect(positionA - 50, 100, RecWidth, RecHeight);
g.setColor(Color.BLUE);
g.fillRect(positionB - 50, 300, RecWidth, RecHeight);

if (!gaming) {
g.setFont(new Font("宋体", ALLBITS, 50));
if (winner == 'A') {
g.setColor(Color.RED);
g.drawString(new String("Winner Is The Red One!"), 350, 250);
} else if (winner == 'B') {
g.setColor(Color.BLUE);
g.drawString(new String("Winner Is The Blue One!"), 350, 250);
}
}
}

public static void main(String[] args) {
waitA = false;
waitB = true;
unrepaint = false;

threadframe tf = new threadframe();
threadA tA = new threadA();
threadB tB = new threadB();

tf.start();
tA.start();
tB.start();

try {
tf.join();
tA.join();
tB.join();
} catch (Exception e) {
// TODO: handle exception
}
return;
}

//兔子的线程
public static class threadA extends Thread {

public void run() {
while (gaming) {

while (waitA) {
if (!gaming)return;
System.out.print("");
}

try {
sleep(sleeptime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int distance = (int) (Math.random() * 100000) % 100;
positionA += distance;
if (positionA >= distanceAll) {
positionA = distanceAll;
unrepaint = false;
gaming = false;
winner = 'A';
}
unrepaint = false;
waitA = true;
waitB = false;
}
}
}

//乌龟的线程
public static class threadB extends Thread {

public void run() {
while (gaming) {

while (waitB) {
if (!gaming)return;
System.out.print("");
}

try {
sleep(sleeptime);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int distance = (int) (Math.random() * 100000) % 100;
positionB += distance;

if (positionB >= distanceAll) {
positionB = distanceAll;
unrepaint = false;
gaming = false;
winner = 'B';
}
unrepaint = false;
waitB = true;
waitA = false;
}
}
}

//框架刷新线程
public static class threadframe extends Thread {
Test jiemian = new Test();

public void run() {
while (gaming) {
while (unrepaint) {
if (!gaming)return;
System.out.print("");
}
jiemian.repaint();
unrepaint = true;
}
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-12-30
展开全部
大哥,大姐们帮帮忙!急啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式