java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
请告诉我上面的代码实际上做了什么。我正在寻找逐行解释。尤其是第一行,告诉我为什么要使用它,以及在什么情况下我们必须使用它。
最佳答案
在此示例中,您将看到一个派生自 Runnable 的任意类。这个匿名类覆盖了接口(interface) runnable 的 run 方法。然后这个匿名类被实例化并传递给 EventQueue.invokeLater 方法,这是一个静态方法。此方法将对象追加到...嗯...eventQueue。 EvenQueue 中有许多事件,例如键盘事件或鼠标事件或其他事件。有一个线程不断从这个队列中轮询数据。一旦该线程到达此处实例化的匿名类,它将执行 run() 方法,该方法将实例化类 NewJFrame 的对象并将其设置为可见。
这样做的关键在于 new JFrame().setVisible(true) 部分不是在主线程中执行,而是在事件调度线程中执行。在 Swing 中,您必须在事件调度线程中执行所有修改用户界面的代码。
关于java - 请解释以下代码的作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908824/