2017-08-30 81 views
0

現在,打開一個對話框,我創建一個新的JDialog對象,然後調用dispose退出對話框。有沒有辦法使用相同的對象多次調出對話框?

有沒有一種方法可以創建一個對話框,稍後使用相同的對象調用相同的對話框?

我想要這樣做的原因是,文本字段中的值將保持其值。

+2

您可以使用['setVisible'(https://docs.oracle.com/javase/7/docs/api/java/awt/Dialog.html#setVisible(布爾)),以顯示和隱藏它,並且不要處置它。 – khelwood

+0

如果你真的需要處理JDialog,那麼你需要在一些Pojos中存儲填充GUI的「模型 - 數據」...... –

回答

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

您還可以使用this.setVisible(false)對話框裏面,所以它不會破壞,是從父類使用。此外,如果它有輸入字段,它們不會被清除。 它在windows10任務欄中是不可見的,不瞭解linux。

0

對於經常顯示/隱藏的對話框,我使用單例模式。只要你永遠不需要其中的一個以上,例如一個「設置」對話框。創建一個擴展JDialog的類,使用singleton pattern

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。

SettingsDialog.getInstance().setVisible(true); 
相關問題