SwingUtilities.invokeLater(EP6_2::createAndShowGUI);会自动为方法新建的面板设置可见吗,但是事件监听里的面板要额外设置可见性
时间: 2024-01-24 15:18:37 浏览: 24
是的,SwingUtilities.invokeLater()方法确保createAndShowGUI()方法在事件分派线程上运行,以确保Swing组件的线程安全性。在createAndShowGUI()方法中,通常会使用JFrame等Swing组件来创建GUI,并将其设置为可见。
但是,对于事件监听器中使用的JPanel或其他Swing组件,需要手动将它们设置为可见,因为它们不是直接由JFrame创建的。可以使用setVisible()方法来设置它们的可见性。
相关问题
SwingUtilities.invokeLater(EP6_2::createAndShowGUI);会自动为方法新建的面板设置可见吗
是的。SwingUtilities.invokeLater() 方法的目的是将创建和显示GUI的代码放在事件分派线程(EDT)上运行,以确保安全地更新Swing组件。在createAndShowGUI()方法中,通常会创建并设置JFrame或JPanel的可见性,因此在调用SwingUtilities.invokeLater()时,新建的面板将自动设置为可见。
SwingUtilities.invokeLater(EP6_2::createAndShowGUI);不用这个窗口和面板就要设置可见吗
是的,如果你不使用 `SwingUtilities.invokeLater` 来创建和显示 GUI,那么你需要在创建窗口和面板后调用它们的 `setVisible(true)` 方法来使它们可见。这是因为在创建 GUI 时,Swing 必须运行在事件分发线程(Event Dispatch Thread)中,以确保界面的安全性和正确性。而 `SwingUtilities.invokeLater` 方法则是将 GUI 创建和显示操作放在事件队列中,等待事件分发线程来执行。这样可以保证在正确的线程中创建和显示 GUI,避免多线程操作带来的问题。