我正在开发一个游戏项目,我正在使用JSwing创建GUI。它看起来像这样:
我正在尝试制作打字机'效果,所以在我的自定义PrintUtils方法中有一个Thread.sleep(100)(让我们称之为printToGui)。我已经将System.out路由到GUI中心的TextArea,并且第一次运行程序时打字机'打字机'效果很好,我通过printToGui发送的启动文本显示应该。但是,每当我单击一个按钮(触发更多文本通过printToGui发送)时,应用程序就会冻结,并且不会解冻,直到用Thread.sleep()完成打印所需的时间长度,吐出所有文字一次。
我所知道的是,第一次启动应用时,Thread.sleep()正在" main"线程,而每次我点击一个按钮,它发生在AWT-EventQueue-0线程上。我认为这是问题,但也许不是;如何将未来输出到GUI以及#34; main"线程而不是新的?谢谢!