我知道,這個問題似乎很常見,像here: 但我想提出一些非常具體的例子...我只是不確定是否我做的東西對。從JDialog返回值;處置(),setVisible(false) - 示例
我有一個JDialog,我可以在其中鍵入一些值,選擇一些複選框...無論什麼... 我也有一些響應對象在MyDialog中創建,它代表MyDialog的「答案」。
在JFrame中它調用/創建的JDialog:
3210對話框(對話框可以通過點擊 「保存」 按鈕關閉):
btnSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dialogResponse = prepareResponse(); // prepares response on the basis of some data introduced by a user; dialogResponse is called from JFrame after Dialog is closed
setVisible(false);
dispose(); // <-- Important
}
});
我的問題是: 此解決方案,我的意思是,行MyDialog.Response dialogResponse = d.getDialogResponse();
返回適當的值,但... 如果我使用dispose()關閉對話框,所有對話框的資源都可以被垃圾收集(不必很難預測,對嗎?) 。所以,以這種方式檢索我的對話框響應是正確的......也許在這種情況下,我應該只寫setVisible(false);
而不使用dispose()
。
如果你需要你的'JDialog',以後不要配置它,只需使用'setVisible(false)',否則你可以毫無問題地處置它 – Paniz
不知道我理解,因此評論,但不能你從框架中處理對話框? – npinti
@npinti是的,但我主要是好奇,如果我可以訪問我的對話框的迴應後dispose()調用對話框 –