2017-08-30 9 views
0

今、ダイアログを表示するために、新しいJDialogオブジェクトを作成し、disposeを呼び出してダイアログを終了します。同じオブジェクトを使用して複数回ダイアログを表示する方法はありますか?

ダイアログを作成して、後で同じオブジェクトを使用して同じダイアログを呼び出す方法はありますか?

私がこれをやりたい理由は、テキストフィールドの値がその値を保持するようにするためです。それは破壊され、親クラスから利用可能ですされませんので

+2

それを処分しないでください。 – khelwood

+0

JDialogを本当に処分する必要がある場合は、いくつかのPojosにGUIを設定する「モデルデータ」を残す必要があります...... –

答えて

1
JDialog d = new JDialog(); 
d.setVisible(false); 

また、ダイアログ内this.setVisible(false)を使用することができます。また、入力フィールドがある場合、それらはクリアされません。 windows10のタスクバーでは表示されませんが、Linuxについてはわかりません。

0

頻繁に表示/非表示になるダイアログでは、シングルトンパターンを使用します。あなたがそれらの1つ以上を必要としない限り、例えば "設定"ダイアログのように。 singleton patternを使用してJDialogを拡張するクラスを作成します。

その後
public class SettingsDialog extends JDialog { 

    private static SettingsDialog instance = null; 

    public static SettingsDialog getInstance() { 
     if (instance == null) { 
      instance = new SettingsDialog(); 
     } 
     return instance; 
    } 

    private SettingsDialog() { 
     super(); 
    } 
} 

あなたは他の人が使用のsetVisibleメソッドを述べてきたように(ボタンやメニュー項目のアクションリスナーから)あなたのダイアログを表示します。あなたが表示され、非表示にするには、[ `setVisible`](https://docs.oracle.com/javase/7/docs/api/java/awt/Dialog.html#setVisible(ブール値))を使用することができます

SettingsDialog.getInstance().setVisible(true); 
関連する問題