使线程返回值的正确方法是什么?

Ada*_*ith 4 java swing multithreading

我是Java线程的新手,经过测试以了解它们是如何工作的,我无法弄清楚如何让它们进行计算并以我想要的方式返回结果.

例如,在我当前的程序中,我希望我的线程通过调用一个方法来查询数据库,该方法在Vector单击a时返回对象中的数据JButton.然后,使用该向量对象,我想将每个索引(一个数组)作为一行添加到一个JTable.

实现这一目标的正确方法是什么?我知道我可以JTable在调用类中使用一个setter 但我确信必须有一个更"正确"的方式.

mre*_*mre 7

是的,用一个SwingWorker.此机制适用于需要在后台线程中运行长时间运行任务并在完成或处理时为UI提供更新的情况.由于Swing是单线程的,因此UI可以保持响应.

  • +1另见[example](http://stackoverflow.com/questions/4637215/can-a-progress-bar-be-used-in-a-class-outside-main/4637725#4637725). (2认同)