我的代码是:
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方法?
答案 0 :(得分:3)
听起来你可能在UI线程上做了所有这些。不要那样做 - 让solveIt
在后台线程上执行,如果需要更新/查询UI,则使用SwingUtilities
调用UI线程。基本上,您不应该在UI线程中做大量工作 - 有关详细信息,请参阅Swing concurrency tutorial。
答案 1 :(得分:1)
看看SwingWorker Class。它用于执行后台进程而不停止要安装的帧。
答案 2 :(得分:1)
将事件派发线程用于短暂的GUI相关代码。长时间运行的任务应该按照其他答案中的建议在自己的线程中执行。
因为人们打赌我。让我用一些有趣的链接补充他们的答案:
请注意,这两个链接指向JFC的有些陈旧但相关的文档。现在SwingWorker
已包含在标准API中。
干杯,