Java 有没有办法知道JPanel是否已完成加载';什么内容?

Java 有没有办法知道JPanel是否已完成加载';什么内容?,java,swing,jpanel,cardlayout,Java,Swing,Jpanel,Cardlayout,我正在编写一个应用程序,在运行时将卡片(JPanel)添加到CardLayout。问题是,卡上的某些组件加载速度比其他组件快,使其出现故障,并且在显示之前未正确渲染 我希望它在第一次展示时就准备好 我已经通过一个加载屏幕暂时解决了这个问题,它使线程休眠1500毫秒。有没有更简单的方法来知道面板上的所有内容是否都已加载 private void showLoadingScreen() { final Component glassPane = getGlassPane(); set

我正在编写一个应用程序,在运行时将卡片(JPanel)添加到CardLayout。问题是,卡上的某些组件加载速度比其他组件快,使其出现故障,并且在显示之前未正确渲染

我希望它在第一次展示时就准备好

我已经通过一个加载屏幕暂时解决了这个问题,它使线程休眠1500毫秒。有没有更简单的方法来知道面板上的所有内容是否都已加载

private void showLoadingScreen() {
    final Component glassPane = getGlassPane();
    setGlassPane(loadingPanel);
    loadingPanel.setVisible(true);

    Thread thread = new Thread() {
        public void run() {
            try {;
                Thread.sleep(1500);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            setGlassPane(glassPane);
        }
    };

    thread.start();
}

在使用SwingWorker创建的后台线程中执行所有文件加载和数据操作。然后在执行SwingWorker之前,添加PropertyChangeListener。当PropertyChangeEvents newValue为
SwingWorker.StateValue.DONE
时,您就知道所有后台工作都完成了,可以显示GUI

请看一下教程,例如,请看一个类似的问题