我是Java线程的新手,经过测试以了解它们是如何工作的,我无法弄清楚如何让它们进行计算并以我想要的方式返回结果。
例如,在我当前的程序中,我希望我的线程通过调用一个方法来查询数据库,该方法在单击Vector
时返回JButton
对象中的数据。然后,使用该向量对象,我想将每个索引(一个数组)添加为JTable
中的一行。
实现这一目标的正确方法是什么?我知道我可以在调用类JTable
上使用setter,但我确信必须有更“正确”的方法。
答案 0 :(得分:7)
是的,请使用SwingWorker
。此机制适用于需要在后台线程中运行长时间运行任务并在完成或处理时为UI提供更新的情况。由于Swing是单线程的,因此UI可以保持响应。
答案 1 :(得分:2)
或basic workaround by impements Runnable,其中GUI的输出必须在invokeLater
中更多地包含在Concurrency in Swing中