问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-07-13 15:02

我来回答

3个回答

热心网友 时间:2023-11-03 11:56

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;
}
}
}

}

热心网友 时间:2023-11-03 11:57

急啊!快啊,追加悬赏分!谢谢!

热心网友 时间:2023-11-03 11:57

大哥,大姐们帮帮忙!急啊!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
江西蓝天学院和赣江职业技术学院哪个好? 江西有什么好的中专学校 什么是单点登录(SSO),以及单点登录的实现流程 前端实现单点登录(SSO) 前端单点登录如何实现 面试官:来说说单点登录的三种实现方式 为什么很多人不买哈弗H9 座机如何开通国内长途 座机如何申请 辽宁省出租车手续怎么办? 2020德宏事业单位招聘考试是先考试职测还是综合? 哪学爵士舞好,舞泽天舞蹈学爵士舞可以吗 常德城市英雄爵士舞 常德哪里有学肚皮舞的啊 湖南常德学爵士舞 oppoa32吃鸡陀螺仪有延迟呢? 电脑主机开机红色灯亮 窄字打头的四字词语 电脑主机上的红色指示灯代表什么? 简单男子双人街舞(最好POPING)教学(文艺表演) 梦见和生气在娘家住的老婆一起在饭店吃饭? 梦见和自己老婆在饭店吃饭怎么解? 给点植物就滋润 秋日家居保湿技巧 适合室内摆放保湿水养植物有哪些? 室内保湿 种什么植物 手机版的qq群的信息铃声怎么设置? qq群信息的铃声怎么设置? 我做的烤鸭老是不起皮一整块硬蹦蹦的请问怎么解决? 六安的海洋大世界有哪些海洋生物? 深圳能补办异地身份证吗? sour;sweet;bitte;spice是什么意思? java 画图动画 赵孟頫书梅花诗十首的汉字简写- 问一问 求王安石古诗《梅》的书法作品图片!!!行书!!! 汤润清 雪梅 宋·卢梅坡 有梅无雪不精神,有雪无梅俗了人. 日暮诗成天又雪,与梅并作十分行书法 如何分辨金奖白兰地真假 张裕五星金奖白兰地好喝吗,适合自己饮用吗? 老爸朋友给送了几瓶张裕五星金奖白兰地,听说这酒有收藏价值,是不是真的? 张裕五星金奖白兰地怎么样,珍藏五星金奖白兰地有人喝过吗? 张裕五星金奖白兰地究竟好在哪里,大家怎么都爱喝这个酒? 女生发平平淡淡简单的幸福不会在有孤独,最漫长的旅途等下一站结束啥意思? 给两节串联的镍氢电池放电可以用2V稳压二极管来防止过放吗? 有没有2伏到2.5伏的稳压二极管或者三极管?IC也行,不过成本和功耗要很低。 爱你爱你歌词是什么歌 卡西欧手表城市时间怎么调 卡西欧手表怎么调时间啊 汪东城晒接吻照官宣,他的女朋友是谁? 东山再起 用英语怎么说 东山再起的英文怎莫说? 我能陪你东山再起,也能让你一无所有怎么说