1

推奨されるコードを使用して、Swing を使用する対話型プログラムを開始します。:

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(
        new Runnable() {
          public void run() {
            createAndShowGUI();
          } } ) };

JFrameを作成し、それを「Foo」と呼び、ユーザーがそのウィンドウを閉じると終了します(OSのClose-Window Xアイコンまたは別のOSの方法を使用してアプリを閉じます)

別のウィンドウ "Bar" を表示し、ユーザー入力を取得し、独自の Swing 呼び出しでそのウィンドウを閉じてから、"Foo" ウィンドウを表示したいと考えています。

Foo と Bar に同じ JFrame を再利用し、その間をクリアすることができます。しかし、私はそれぞれのデザインをより独立させることを好みます。したがって、Foo の ActionListener は Foo のフレームを閉じ、Bar を表示するコードを呼び出す必要があります。

バーを表示するコードを呼び出すために InvokeLater() を使用する必要がありますか? 設計の独立性を高めるには、main() を開始して 2 つのスレッドを同期する必要がありますか?

4

2 に答える 2

2

ユーザー トリガー アクション リスナー コードは EDT で実行されるため、再度ラップする必要はありません。とはいえCardLayout、複数のフレームを使用するよりも使用する方が適切である可能性があります。

于 2013-08-16T12:36:55.447 に答える