Java 我只想在变量更改时重绘

标签 java swing repaint paintcomponent

我有一个方法可以记录还剩多少猜测,我希望每次有人错过字母或单词时都重新绘制它,但它一直在重新绘制自己,这导致整个程序不断闪烁。

我的方法是这样的:

public void repaintWord(Graphics g){
    g.SetColor(Color.RED);
    g.drawString("You have " + getN() + " guesses left", 400, 50);
    repaint();
}

如何让它在 getN() 改变它的值时只重绘一次?

最佳答案

保存 repaintWord() 上次退出时 getN() 的值,并与 getN() 比较 入口:

private int lastN = ??; /* Value for max guesses. */

public void repaintWord(Graphics g)
{
    if (lastN != getN())
    {
        lastN = getN();
        g.SetColor(Color.RED);
        g.drawString("You have " + lastN + " guesses left", 400, 50);
        repaint();
    }
}

关于Java 我只想在变量更改时重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995898/

相关文章:

java - Swing 油漆法

java - 未调用 paintComponent

java - Spring Oauth2 单点登录 : Use Authority granted by AuthorizationServer

java - 在无限循环中执行事件

Java - 用户输入 - 错误循环

java - 为什么这个简单的 Java Swing 程序会死机?

java - 如何重用GUI对象(享元模式)

java - 为什么我的重绘不起作用?

java - 处理 JSON 数据。无法在android中使用以下代码解析

java - 迭代 Hashmap 中的 JPanel 组件