目前,我有一个使用System.currentTimeMillis的简单秒表代码。然而,当我试图让它更新保存已经过去的秒数的JTextField时,我的程序就会冻结。我已经搜索过了,如果我正确地理解了它,我就不能拥有相同的“线程”来运行无限循环和GUI。我是一个相当缺乏经验的程序员,我想知道线程是否是我应该去掌握/学习/实现的东西。
发布于 2016-05-04 08:50:10
与更新UI的AWT/Swing线程相比,您的业务代码应该使用不同的线程。如果阻止AWT/Swing线程,UI也将被阻塞。
使用新线程进行倒计时,并从AWT线程更新UI,这可以由SwingUtilities.invokeLater完成,请参见https://docs.oracle.com/javase/7/docs/api/javax/swing/SwingUtilities.html#invokeLater%28java.lang.Runnable%29
发布于 2016-05-04 08:47:28
线程一开始看起来可能很可怕,但并不像你想象的那么可怕。当学习扩展和实施时,它也是一个很好的起点。下面是一些简单的示例,让您开始学习:https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html
https://stackoverflow.com/questions/37022631
复制相似问题