一种选择是用于
SwingUtilities.invokeLater(...)将 *** 作发布到
EDT
SwingUtilities.invokeLater(new Runnable(){ @Override public void run(){ JOptionPane.showMessageDialog( Utils.getActiveframe(), msg, "Error", JOptionPane.ERROR_MESSAGE, errorIcon); }});
正如您指出的那样,
SwingWorker它能够报告中间结果,但是您需要覆盖
process(...),这是在调用时调用的
publish(...)。
无论如何,为什么不只设置一个标志(如果发生异常),并且如果设置了该标志,则显示该对话框,
done()因为该对话框已在
EDT?中安全地执行了?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)