gpt4 book ai didi

java - 刷新小程序中的文本

转载 作者:行者123 更新时间:2023-11-29 08:57:32 25 4
gpt4 key购买 nike

我正在用 Java 小程序进行两辆汽车之间的小型比赛。只有两张图片以随机速度移动。我正在计算当前位置和终点线之间的距离,你应该能够在上角看到距离。

问题是我无法刷新文本字段,它只是在旧数字之上应用了一个新层,因此几乎无法阅读。以下是展示我的问题的图片。

我以为我可以通过在每个循环开始时创建蓝色矩形来解决它,但这似乎并没有解决它。

Initial

Image 2

    public void action(){
Random rand = new Random();
boolean race = true;
int x1 =500, y1 = 233;
int x2 = 500, y2 = 333;
int speed1 = rand.nextInt(15) + -16;
int speed2 = rand.nextInt(15) + -16;
int finishline = 30;
Text winnerBlue = new Text("Winner: BLUE",new Font("SansSerif",Font.BOLD,20), Color.blue,Color.white);
Text winnerRed = new Text("Winner: RED",new Font("SansSerif",Font.BOLD,20), Color.red,Color.white);
//background
Text text =null;
Text text2 = null;
window.fillRect(0, 0, 600, 400, Color.GREEN);
//track 1
window.fillRect(20, 330, 550, 39, Color.gray);
//track2
window.fillRect(20, 230, 550, 39, Color.gray);

//Finish line
window.fillRect(40, 210, 10, 180, Color.BLACK);



while(race){

text = new Text(Integer.toString(x1),new Font("Courier",Font.BOLD,20), Color.WHITE);
text2 = new Text(Integer.toString(x2),new Font("SansSerif",Font.BOLD,20), Color.WHITE);
window.fillRect(0, 0, 70, 50, Color.blue);
window.fillRect(70, 0, 70, 50, Color.red);
window.showImage(text, 0, 0);
window.showImage(text2, 70, 0);

window.showImage(car1.getImage(), x1, y1);
window.showImage(car2.getImage(), x2, y2);

car1.moveTo(x1 += speed1, y1);
car2.moveTo(x2 += speed2, y2);
window.pause(50);
if(x1 <= (finishline ) ){
speed1 = 0;
speed2 = 0;
window.showImage(winnerBlue, 200, 200);
race = false;



}
if(x2 <= (finishline)){
speed2 = 0;
speed1 = 0;
window.showImage(winnerRed, 200, 200);
race = false;

}

}


}

最佳答案

对于这两个屏幕截图和提供的代码片段,很明显您不了解 Swing/AWT 中的绘画是如何工作的。

永远不要在 paintXxx 方法之外维护对 Graphics 上下文的任何类型的引用。

paint 方法执行许多非常重要的步骤来为绘制准备 Graphics 上下文

首先浏览 Performing Custom Painting

关于java - 刷新小程序中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com