【发布时间】:2010-12-14 07:26:00
【问题描述】:
我正在用 Java 编写一个小遗传算法,作为学校作业。到目前为止,我几乎一直坚持做控制台应用程序。但是我认为 UI 对这个程序非常有帮助,所以我想做一个。我无法弄清楚如何协调事件驱动的 GUI 和具有开头和结尾的控制台应用程序。
理想情况下,我希望有一堆用于设置的文本框,然后是一个开始按钮。一旦你点击开始,算法就会开始运行,并且 GUI 会在设定的时间间隔内更新最新的程序状态。在没有算法冻结 GUI 的情况下,我怎么能做到这一点,反之亦然?我不希望任何一方等待另一方。
如何让我的主循环在算法运行时不冻结 GUI?我认为它们需要在单独的线程中,但我以前从未弄乱过线程。对于这项任务来说,这似乎太复杂了,这一定是司空见惯的。
【问题讨论】:
-
对任何可能觉得这很有用的人的更新:我最终使用了 SwingWorker。这很容易,而且效果很好。我强烈推荐给任何处于相同情况的人。
标签: java user-interface multithreading loops