JAVA 如何更新已绘制的字符串?



我正在尝试重新绘制一个用于在我正在制作的小型 Java 游戏中保持分数的字符串,但我不确定如何在屏幕上更改字符串。如您所见,它最初是绘制的,我正在尝试在游戏内 if 语句中更新它。

public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.white);
g.fillRect(0, 0, d.width, d.height);
//g.fillOval(x,y,r,r);
//Draw Player
g.setColor(Color.red);
g.fillRect(p.x, p.y, 20, 20);
if(p.moveUp == true) {
p.y -= p.speed;
}
moveObstacles();
for (int i = 0; i < o.length; i++ ) {
g.fillRect(o[i].x, o[i].y, 10, 5);
}
Font small = new Font("Helvetica", Font.BOLD, 14);
FontMetrics metr = this.getFontMetrics(small);
g.setColor(Color.black);
g.setFont(small);
g.drawString(message, 10, d.height-60);
g.drawString(message2, 10, d.height-80);
if (ingame) {
for (int i = 0; i < o.length; i++ ) {
if ((o[i].x < p.x + 20 && o[i].x > p.x) && (o[i].y < p.y + 20 && o[i].y > p.y)) {
p.x = BOARD_WIDTH/2;
p.y = BOARD_HEIGHT - 60;
lives = lives - 1;
g.drawString(message, 10, d.height-60); 
}
}
// g.drawImage(img,0,0,200,200 ,null);
}
Toolkit.getDefaultToolkit().sync();
g.dispose();
}

你创建一个类似于setMessage(…)的方法。然后,此方法将"消息"保存为类中的属性。

然后该方法将调用 repaint((,这将导致组件重新绘制自身。

这就是所有 Swing 组件的工作方式。考虑一下JLabel和setText(...(方法。

也:

  1. 自定义绘制是通过重写 paintComponent(( 方法而不是 paint(( 方法来完成的。

  2. 不需要 Toolkit sync(( 方法。

  3. 不应释放图形对象。

相关内容

  • 没有找到相关文章

最新更新