EventQueue.invokeLater(new Runnable() { public void run() { try { Gui frame = new Gui(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } });
时间: 2024-03-19 19:40:44 浏览: 79
这段代码使用了Java Swing框架,并创建了一个GUI窗口(Gui类的实例),并将其设置为可见。
EventQueue.invokeLater()是Java Swing框架中的一个方法,用于在Event Dispatching Thread(EDT)中异步执行一个Runnable对象。EDT是Swing框架中用于处理GUI事件的线程,因此所有Swing组件的创建和修改操作都应该在EDT中执行。
在这段代码中,我们传递了一个Runnable对象给invokeLater()方法,并重写了其run()方法。在run()方法中,我们创建了一个Gui类的实例,并将其设置为可见。
需要注意的是,如果我们在主线程中直接创建和显示GUI组件,会导致GUI界面反应缓慢甚至崩溃。因此,使用EventQueue.invokeLater()方法可以确保GUI组件的创建和修改在EDT中异步执行,保证了GUI界面的稳定性和反应速度。
相关问题
java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new SalarySearch().setVisible(true); } });
这段代码是用于在Java Swing应用程序中创建并显示一个名为SalarySearch的窗口。它使用了EventQueue.invokeLater()方法来确保在事件调度线程上执行此操作,以避免UI线程阻塞。当run()方法被调用时,它实例化一个SalarySearch对象并将其设置为可见状态,从而显示窗口。
public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { ChengYuJieLong frame= new ChengYuJieLong(); // 设置窗口关闭时退出程序 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); }
这段代码实现了在事件分派线程中创建并显示 `ChengYuJieLong` 窗口。`EventQueue.invokeLater` 方法将 `Runnable` 对象添加到事件队列中,并在调用线程执行完毕后异步地运行该对象的 `run` 方法。
在 `run()` 方法中,您创建了一个 `ChengYuJieLong` 对象,并设置了其关闭行为和可见性。如果您没有在 `ChengYuJieLong` 构造函数中初始化窗口内容,您需要在这里添加构建窗口内容的代码。
阅读全文