在我的带有Swing GUI的Java应用程序中,我想要实现以下功能。Java Swing应用程序:如何从GUI线程获取数据到另一个线程?
有一个非GUI线程正在运行,执行一些工作。有一点,这个线程需要用户输入才能继续。然后,我想对GUI进行一些更改,等待特定的GUI操作(如用户按下OK按钮),从GUI获取输入数据到非GUI线程,并让它继续计算。
环顾四周,我发现了很多关于如何从另一个线程上的Swing GUI线程启动执行(长时间运行)任务的信息,但没有解决我的问题。
SwingUtilites.invokeAndWait
听起来像它的工作,但首先,它需要一个Runnable
参数,而不是一个Callable
的,所以返回的结果没有直接的方式,第二,它没有解决的等待一定的问题GUI事件。
我意识到我可以用自己的解决方案来弥补自己的解决方案。一个CountDownLatch
,但对我来说,这个问题似乎足够频繁,因为有一个标准的解决方案。
所以,我的问题是:这是一个真正常见的问题,如果是的话,是否有标准库/库中的解决方案?如果没有标准的解决方案,你会如何解决它?如果这个问题不经常发生,为什么不呢?
查看类似的问题http:// stackoverflow。com/questions/3981924/how-to-retrieve-a-value-that-must-be-calculated-on-another-thread – 2014-02-19 01:49:51