如何判断gui是否在java中完全构建?

How to determine if gui is completely constructed in java?

我想在单击按钮时显示一个新的 JFrame,并且我正在调用另一个方法,此方法需要该 JFrame 中的元素,但在完成构建 gui 之前,我的方法正在运行。有什么方法可以确定什么时候构建了gui的所有元素?

这是我的代码:

    public void run(String mergeLevel) {
    JProgressBar progressBar = addProgressBar();
    extractGrammar(progressBar);
    }

如果你想保证在你的方法调用之前完全构建GUI,创建一个SwingWorker的子类并在开始你的GUI构建之后将你的方法调用放在SwingWorker的done()方法中,它本身应该通过 Runnable 和 SwingUtilities.invokeNow() 放在 swing 线程上。构建 GUI 后,代码将在 swing 线程上执行。