【发布时间】:2014-04-17 13:07:41
【问题描述】:
我正在做一个简单的java游戏,我要做一个3..2..1...Go! 我的代码是这样的:
public void paint321(Graphics g) { // <-- called from paintComponent(Graphics)
try {
int hei = this.getHeight(), wid = this.getWidth();
g.drawString("3", (int)(wid/2), (int)(hei/2));
Thread.sleep(1000);
g.drawString("2", (int)(wid/2), (int)(hei/2));
Thread.sleep(1000);
g.drawString("1", (int)(wid/2), (int)(hei/2));
Thread.sleep(1000);
g.drawString("Go!", (int)(wid/2)-6, (int)(hei/2));
}
catch (InterruptedException ex) { ...
但是游戏 GamePanel(我的面板扩展了 JPanel 并且位于 JFrame 上)看起来是白色的 3 秒,然后我看到“3”、“2”、“1”和“Go!”互相卡住。
我无法使用线程,但我认为这是因为我告诉计算机甚至不显示当前线程(我猜是我的 GamePanel)。
我的问题是:我如何在没有 Thread.sleep() 的情况下等待指定的时间(在我的情况下为 1 秒)? 或者解释一下为什么我会看到一个白色的面板
【问题讨论】:
-
调用这个方法后你会做什么?
-
@Eugene 没什么,我在查看卡住的文字后关闭程序