第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java.awt.EventQueue.invokeLater解釋

java.awt.EventQueue.invokeLater解釋

繁華開滿天機 2019-10-17 15:46:46
我很好奇為什么我們必須使用它java.awt.EventQueue.invokeLater來控制揮桿部件。為什么我們不能在普通線程中這樣做?幕后到底發(fā)生了什么?從我注意到的情況(如果有),JFrame可以在不出現任何錯誤的情況下從主線程將可見性設置為true或false,并且它確實起作用。那么我到底通過使用實現了java.awt.EventQueue.invokeLater什么呢?我也完全知道我可以使用,SwingUtilities.invokeLater但是正如這里所解釋的,它們似乎是一回事。感謝任何人的解釋。希望這是一個有效的問題。編輯:回答wumpz問題我們可以創(chuàng)建一個jframeJFrame frame = new JFrame("Hello world");frame.setSize(new Dimension(300, 300));frame.setPreferredSize(new Dimension(300, 300));frame.setMaximumSize(new Dimension(300, 300));frame.setMinimumSize(new Dimension(300, 300));frame.setVisible(true);frame.pack();frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);在創(chuàng)建的同一線程上,執(zhí)行以下操作。for (int i = 0; i < 34; i++){    System.out.println("Main thread setting to "+(!frame.isVisible()));    frame.setVisible(!frame.isVisible());}而且沒有怨言。
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

完整的Swing處理是在稱為EDT(事件調度線程)的線程中完成的。因此,如果您要在此線程中進行一些長時間的計算,則會阻塞GUI。


此處的方法是在另一個線程中處理您的計算,因此您的GUI保持響應。最后,您需要更新您的GUI,這必須在EDT中完成?,F在EventQueue.invokeLater開始發(fā)揮作用。它Runnable在Swings事件列表的末尾發(fā)布一個事件(您的),并在處理完所有先前的GUI事件之后進行處理。


也EventQueue.invokeAndWait可以在這里使用。所不同的是,您的計算線程將一直阻塞,直到您的GUI更新為止。因此很明顯,不能在EDT中使用它。


注意不要從其他線程更新Swing GUI。在大多數情況下,這會產生一些奇怪的更新/刷新問題。


仍然有Java代碼可以從主線程簡單地啟動JFrame。這可能會導致問題,但不能阻止它搖擺?,F在,大多數現代IDE都會創(chuàng)建類似這樣的內容來啟動GUI:


public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {

            new NewJFrame().setVisible(true);

        }

    });

}


查看完整回答
反對 回復 2019-10-17
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

所有受支持的平臺都提供單線程圖形庫。搖擺是跨平臺的。因此,Swing GUI對象應僅在事件分發(fā)線程上構造和操作。


順便說SwingUtilities.invokeLater()一句,是EventQueue.invokeLater()自1.3版以來的封面。


查看完整回答
反對 回復 2019-10-17
  • 2 回答
  • 0 關注
  • 1923 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號