Java只会每隔一段时间重新绘制一次
我有一个函数,可以显示一个玩家的猜测次数。Java只会每隔一段时间重新绘制一次,java,swing,repaint,paintcomponent,Java,Swing,Repaint,Paintcomponent,我有一个函数,可以显示一个玩家的猜测次数。 代码如下: public void drawString(Graphics g){ g.setColor(Color.RED); g.drawString("You have " + getN() + " guesses left", 400, 50); if (lastN != getN()){ repaint(); lastN = getN(); } } 我的问题是它每隔一段时间就重
代码如下:
public void drawString(Graphics g){
g.setColor(Color.RED);
g.drawString("You have " + getN() + " guesses left", 400, 50);
if (lastN != getN()){
repaint();
lastN = getN();
}
}
我的问题是它每隔一段时间就重新绘制一次。我的意思是:
首先打印:您还有10个猜测当只剩下9次猜测时,它保持在10 然后打印:您还有8次猜测
发射型计算机断层扫描仪。直到有0 如何让它每次都改变 所以你需要做:
if (lastN != getN()){
lastN = getN();
}
repaint();
repaint
在if
条件之外,现在在这种情况下,每次都会调用paint
,因此您需要执行以下操作:
if (lastN != getN()){
lastN = getN();
}
repaint();
repaint
超出if
条件,现在在这种情况下,每次调用paint
时都会调用paint是否可以提供一个?从不在绘制周期中添加更改组件状态(调用时无法控制)是否可以提供一个?从不在绘制周期中添加更改组件状态(调用时无法控制)它一直在重新绘制自身,导致整个程序闪烁。在这种情况下,我需要它处于if条件下,然后它将只重新绘制
。如果条件为真,您可以使用类似线程的延迟。在上面的重新绘制
后睡眠
example@HarmeetSinghThread.sleep
和事件调度线程在一起根本不可能-done@Robin当然,我在等待SSCCE做出更多的澄清。它一直在重新绘制自身,导致整个程序闪烁。在这种情况下,我需要它处于if条件下,它将只重新绘制
。如果条件为真,您可以在重新绘制后使用类似线程.sleep
的延迟nt
在上面example@HarmeetSinghThread.sleep
和事件调度线程在一起根本就不存在-done@Robin当然,我正在等待SSCCE做出更多澄清。