2

GUI クラスとデモ クラスを作成しました。デモ クラスが GUI を呼び出しています。別のスレッドで GUI を実行したいと思います。

GUI クラス

public class UserGui extends JFrame {
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                UserGui frame = new UserGui();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}
 }

デモクラス:

public class NNDemo {

    public static void main(String[] args) {
        UserGui gui = new UserGui();
        gui.setVisible(true);

    }
}
4

3 に答える 3

1

1. Event Dispatcher Thread (EDT) は、Gui を担当します。

2. main() GUI アプリケーションのメソッドは長生きせず、イベント ディスパッチャー スレッドで GUI の構築をスケジュールした後、終了します。したがって、GUI を処理するのは EDT の責任です。

これは私が上記の例を行うのが好きな方法です:

public class UserGui extends JFrame {

    public UserGui() {

      // You can set the size here, initialize the state and handlers.
    }


}



public class Demo {

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {
             public void run() {

              new UserGui().setVisible(true);

             }

        });
    } 
}
于 2012-08-04T12:34:05.797 に答える
1

以下は、別のスレッドでフレームを実行するために Net Beans によって自動的に生成されたコードです。

     public static void main(String[] args){

    /*
     * Create and display the form
     */
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new BoardPlay().setVisible(true);
        }
    });
   }
于 2012-08-04T12:42:51.377 に答える