java - 获取 SwingWorker doInBackground() 上变量的值

标签 java swing swingworker local-variables

我必须使用SwingWorker来更新EDT,所以我写了一个这样的方法:

protected String var;
private void doSomething(){
    SwingWorker<Void, String> = new SwingWorker<Void, String>(){
        protected Void doInBackground(){
        var = "something";
        }
    };
}

如何通过上述方法获取 var 值?

最佳答案

你可以...

调用publish并向其传递值,该值将(最终)传递给process

你可以...

doInBackground 方法返回值,该值可以通过在工作线程完成后调用 get 来获取(您可能会使用 PropertyChangeListener code> 确定状态何时改变)

你可以...

设计您自己的界面来将信息传递给工作人员,但我仍然会使用发布/处理功能将其返回到 EDT。

看看Worker Threads and SwingWorker了解更多详情

关于java - 获取 SwingWorker doInBackground() 上变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657764/

相关文章:

java - 我如何制作一个可以从调用类更新值的 Progress Bar 类

Java/Swing(以及一般的 GUI)- 使用条件/过滤器构建动态搜索表单的技术或模式

java - 在 Jackson 中序列化/反序列化别名基元,无需太多样板

java - 实体的 Hibernate 和动态包装器

java - 为什么Java以科学计数法显示10位数字?

java - SwingWorker 中断线程

java - Spring CSS 有时会加载 bootstrap 而不是我的 CSS

java - 如何将文件内容放入 JList 中

java - 这是什么方法途径?

java - 在下载过程中使用 swingworker 更新 JProgressBar