java JFrame加载延迟

sshcrbum  于 2023-04-10  发布在  Java
关注(0)|答案(3)|浏览(157)

我的代码是:

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方法?

6ju8rftf

6ju8rftf1#

听起来你可能在UI线程上做了所有这些。不要这样做-让solveIt在后台线程上执行,如果需要更新/查询UI,使用SwingUtilities调用UI线程。基本上,你不应该在UI线程中做大量的工作-更多信息请参见Swing concurrency tutorial

snz8szmq

snz8szmq2#

看看SwingWorker类。它用于在不停止要安装的框架的情况下执行后台进程。

yyyllmsg

yyyllmsg3#

使用事件调度线程来处理短期的GUI相关代码。长时间运行的任务应该在它们自己的线程中执行,如其他答案所述。
让我用一些有趣的链接来补充其他答案:

请注意,这两个链接指向的是一些旧的但相关的JFC文档。现在SwingWorker包含在标准API中。

相关问题