【发布时间】:2017-07-25 14:03:52
【问题描述】:
我有一个线程计算一些东西并生成一个二维数组。当线程完成时,我需要访问这个二维数组的值。我该怎么做呢
SwingWorker<Integer, Void> worker = new SwingWorker<Integer, Void>()
{
Object[][] valueMatrix = null;
@Override
public Integer doInBackground()
{
try
{
valueMatrix = doChemicalSynonyms(termsArray_1, termsArray_2, mView.getSaveFilepath(), false, mView.getSheetName(), mView.getCategoryName(), mView.includePMIDs());
}
catch (Exception e)
{
e.printStackTrace();
return -1;
}
return 0;
}
@Override
public void done()
{
System.out.println(valueMatrix[0][0]);
}
};
worker.execute();
doChemicalSynonyms 函数生成 valueMatrix。线程完成后如何从主类(类似于全局变量)访问它
【问题讨论】:
-
取决于工人的实施位置。如果它是同一个类,你实际上可以使它成为一个成员变量。
-
查看documentation。有几种方法可以做到这一点。在收到
DONE属性更改的通知后,您可以致电get()。 -
你能举个例子吗?
-
SwingWorker类的参考文档中有一个例子,Swing教程中有一些其他的。
标签: java swing swingworker