Dee*_*pak 15 java concurrency swing runnable
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
Run Code Online (Sandbox Code Playgroud)
请告诉我上面代码实际上做了什么.我正在寻找逐行解释.特别是第一行并告诉我为什么我们使用它,在什么情况下我们必须使用它.
yan*_*kee 27
在此示例中,您将看到从Runnable派生的任何类.这个匿名类重写了runnable接口的run方法.然后实例化此匿名类并将其传递给EventQueue.invokeLater方法,该方法是一种静态方法.此方法将对象追加到...... well ... eventQueue.在EvenQueue中有很多事件,比如键盘事件或鼠标事件或其他什么.有一个Thread继续轮询来自此队列的数据.一旦该线程到达此处实例化的匿名类,它将执行run()方法,该方法将实例化类NewJFrame的Object并将其设置为可见.
执行此操作的重点是复杂的是新的JFrame().setVisible(true)部分不在主线程中执行,而是在事件调度线程中执行.在Swing中,您必须执行在事件调度线程中修改用户界面的所有代码.
| 归档时间: |
|
| 查看次数: |
17273 次 |
| 最近记录: |