【发布时间】:2016-01-10 16:38:33
【问题描述】:
我有一个程序运行基本算法来解决难题。我试图减慢它的速度,以便用户可以看到正在运行的算法。我希望程序显示解决难题所需的步骤。我尝试使用计时器甚至 thread.sleep 来尝试减慢它的速度。但是,我的 GUI (JPanel) 不会在延迟语句之前或之后重新绘制。正在发生的事情是延迟正在发生,算法正在逐步解决,但程序 GUI 没有更新/重新绘制以显示这些步骤。这是该部分的代码:
delay(System.currentTimeMillis(), 500);
repaint();
延迟部分都很好。谁能告诉我为什么 JPanel 不重绘?
这是我做的延迟方法:
public static void delay (long a, int x) //Simple Delay Method
{
while((System.currentTimeMillis()-a) < (x/10)){}
}
【问题讨论】:
-
你能给我们看一段重绘 JPanel 的代码吗?
-
标准java中没有延迟功能。你用什么图书馆?向我们展示更多代码,您所描述的原则上可能是好的。然而,很难在代码中发现我们看不到的缺陷
-
原始包含的代码是用于重绘的全部