java 事件分发线程_Java事件调度线程说明
我最近開(kāi)始學(xué)習(xí)和探索Java中GUI編程的基礎(chǔ)知識(shí)。
經(jīng)過(guò)一段時(shí)間的編程,我只完成了后端工作或其他工作,因此,我最接近用戶界面的是命令控制臺(tái)(令人尷尬的是,我知道)。
我正在使用Swing,據(jù)我所知,通過(guò)擴(kuò)展,我也正在使用AWT。
我的問(wèn)題基于以下代碼:
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frame.setVisible(true);
}
} );
我已經(jīng)研究了一段時(shí)間,因?yàn)槲蚁胪耆斫膺@段奇怪的代碼,并且多次遇到“事件分派線程”一詞。如果我錯(cuò)了,請(qǐng)糾正我,但據(jù)我了解;它與使用多個(gè)線程以及Java Swing如何解釋這些線程有關(guān)。我還收集到上面的代碼用于在創(chuàng)建窗口之前確保所有線程都是“安全的”,因此invokeLater嗎?
我讀過(guò):
“你只能從事件調(diào)度線程中調(diào)用在框架上運(yùn)行的方法”
而且只有在某些情況下,你才能從main方法調(diào)用在框架上運(yùn)行的方法。
有人可以向我說(shuō)明事件調(diào)度線程到底是什么嗎?
它與多個(gè)執(zhí)行線程有何關(guān)系?如何安全地從main方法調(diào)用這些線程?同樣為什么我們需要這個(gè)invokeLater?
我們不僅可以像其他任何對(duì)象一樣創(chuàng)建窗口嗎?
由于我沒(méi)有掌握這些關(guān)系和想法,因此在研究中遇到了一些障礙。
附帶說(shuō)明的是,我希望將自己的知識(shí)基于深入的了解,因?yàn)槲蚁嘈胚@會(huì)帶來(lái)最佳的總體結(jié)果,因此也是最好的程序。如果我深入了解某些東西是如何工作的,那么你可以有效地使用技巧和調(diào)整,而不僅僅是將它們重新編寫(xiě)回代碼中,因此請(qǐng)不要害怕給我一些額外的深入解釋并擴(kuò)大我的知識(shí)。
謝謝。
總結(jié)
以上是生活随笔為你收集整理的java 事件分发线程_Java事件调度线程说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java绘图板_Java中的画图板简单功
- 下一篇: java美元兑换,(Java实现) 美元