我想编写一个简单的Snake。 因此我编写了一个自定义JPanel
,它可以容纳一个Scene
。 A Scene
只是绘制了一些东西,并且可以使用public void run()
方法进行线程化,所以它实现Runnable
。JPanel中的无限循环
现在,当我初始化场景时,我创建了一个Thread
实例。
if (this.getThread() == null) {
Thread sceneThread = new Thread(this);
this.setThread(sceneThread);
this.getThread().run();
} else {
System.err.println("Scene is already running");
}
场面终于开始在一个单独的线程中执行:
// Run thread
public void run() {
try {
while (true) {
this.update();
this.getGamePanel().sceneShouldRepaint();
Thread.sleep(this.getFps());
}
}
catch (Exception e) {
System.err.println(e);
}
}
不知怎的,这是阻止Windows线程。 它不再出现。
有谁能告诉我为什么?
你可以给Windows线程的代码? –
您是否已阅读并理解摆动线程模型如何与事件分派线程一起工作? http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html – Qwerky
@IshanKhanna我刚刚创建了一个新的GUI();','GUI'是一个'JFrame'子类 – NSAddict