Java 事件分派线程说明
我最近开始学习和探索Java中GUI编程的基础知识。
我已经编程了一段时间,我只做过后端工作或工作,因此我最接近用户界面的是命令控制台(我知道这很尴尬)。
我正在使用Swing,据我所知,这意味着通过扩展,我也在使用AWT。
我的问题基于这段代码:
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frame.setVisible(true);
}
} );
我已经研究了一段时间,因为我想完全理解这段奇怪的代码,并且多次遇到“事件调度线程”一词。如果我错了,请纠正我,但正如我所理解的那样;它与使用多个线程以及Java Swing如何解释这些线程有关。我还收集了上面的代码用于确保在创建窗口之前所有线程都是“安全的”,因此调用Later?
我读过:
“您只能从事件调度线程调用对帧进行操作的方法”
并且只有在某些情况下,您才能从 main 方法调用对帧进行操作的方法。
有人可以向我澄清事件调度线程到底是什么吗?
它与多个执行线程有何关系,以及从 main 方法调用这些线程如何不安全?另外,为什么我们需要这个调用Later?
我们能不能像创建任何其他对象一样创建窗口?
我在研究中遇到了一些障碍,因为我没有掌握这些关系和想法。
旁注是,我喜欢将我的知识建立在深入理解的基础上,因为我相信这可以带来最好的整体结果,从而带来最好的计划。如果我深入了解某些东西是如何工作的,那么你可以有效地使用这些技巧和调整,而不仅仅是将它们重新输入代码,所以请不要害怕给我一些额外的深入解释并拓宽我的知识。
谢谢。