我的代码是:
solveDb_userfileInconsistency solve = new solveDb_userfileInconsistency();
solve.setVisible(true);
try {
solve.solveIt();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
“solveIt”方法在30秒后返回,直到它返回,框架没有正确安装,但在solveIt方法返回后,框架正确安装,但我想要的是,在进入solveIt方法之前,框架应该在屏幕上正确。有没有方法可以等待框架的安装,然后调用solveIt方法?
3条答案
按热度按时间6ju8rftf1#
听起来你可能在UI线程上做了所有这些。不要这样做-让
solveIt
在后台线程上执行,如果需要更新/查询UI,使用SwingUtilities
调用UI线程。基本上,你不应该在UI线程中做大量的工作-更多信息请参见Swing concurrency tutorial。snz8szmq2#
看看SwingWorker类。它用于在不停止要安装的框架的情况下执行后台进程。
yyyllmsg3#
使用事件调度线程来处理短期的GUI相关代码。长时间运行的任务应该在它们自己的线程中执行,如其他答案所述。
让我用一些有趣的链接来补充其他答案:
请注意,这两个链接指向的是一些旧的但相关的JFC文档。现在
SwingWorker
包含在标准API中。