【问题标题】:What is the correct way to make a thread return a value?使线程返回值的正确方法是什么?
【发布时间】:2011-07-11 16:22:59
【问题描述】:

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

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

实现此目的的正确方法是什么?我知道我可以在调用类中对我的JTable 使用设置器,但我确信必须有一个更“正确”的方式。

【问题讨论】:

    标签: java multithreading swing


    【解决方案1】:

    是的,使用SwingWorker。此机制设计用于需要在后台线程中运行长时间运行的任务并在完成时或在处理时向 UI 提供更新的情况。由于 Swing 是单线程的,这允许 UI 保持响应式

    【讨论】:

    【解决方案2】:

    basic workaround 通过impements Runnable 输出到GUI 必须包装到invokeLater 更多关于Concurrency in Swing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 2022-01-04
      • 2016-11-05
      • 1970-01-01
      • 2020-03-26
      相关资源
      最近更新 更多