簡體   English   中英

開始揮桿應用程序的最佳實踐

[英]Best practice to start a swing application

啟動java swing應用程序的最佳實踐方法是什么? 也許有另一種方法可以做到這一點。

我想知道我是否必須使用SwingUtilities類來啟動應用程序(可能性)(第一種可能性)。

public class MyFrame extends JFrame {

public void createAndShowGUI() {
    this.setSize(300, 300);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    // add components and stuff
    this.setVisible(true);
}

public static void main(String[] args) {

    // First possibility
    MyFrame mf = new MyFrame();
    mf.createAndShowGUI();

    // Secound possibility
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            MyFrame mf = new MyFrame();
            mf.createAndShowGUI();
        }
    });
}

}

只有第二種方式是正確的。 必須僅在事件派發線程中創建和訪問Swing組件。 看看擺動中的並發性 相關報價:

為什么初始線程不是簡單地創建GUI本身? 因為幾乎所有創建Swing組件或與Swing組件交互的代碼都必須在事件派發線程上運行。 此限制將在下一節中進一步討論。

所以是的,你需要使用invokeLater()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM