如何在构造函数中设置不可见的 GUI?

How to set a GUI non-visible within the constructor?

我有一个 swing GUI class Foo,在 Foo class 的构造函数中,我从数据库加载了一些值。根据数据库的返回值,我可以判断这个 GUI 是否应该可见。但是,当我在这个 GUI class 的构造函数中说 this.setVisible(false); 时,它没有任何效果,因为对象创建尚未完成。

如何在用户没有意识到转换(GUI 消失)的情况下完成此任务?

试试 invokeLater,它只是延迟执行其 运行 方法中的代码块。

SwingUtilities.invokeLater(new Runnable() 
    {
      public void run()
      {
        yourFrame.setVisible(false);
      }
    });

我解决了我的问题。我设置了一个计时器,它每 500 毫秒检查一次它是否仍在构造函数中。我在构造函数的末尾放了一个标志。当一切都在构造函数中完成时,计时器检测到它并将 Gui 设置为不可见,计时器工作 15 秒,这足以创建对象并自行停止。