我有多個自定義對話框,我想要一個簡單的方法來指定關閉操作。首先我使用匿名內部windowListener類,併爲每個對話框指定關閉方法。WindowClosing方法
我認爲創建我自己的類並實現WindowListener類併爲所有對話框指定一個窗口關閉方法會更高效。
所以我做到了這一點,它效果很好。
public class WindowWatcher implements WindowListener{
@Override
public void windowClosing(WindowEvent e) {
System.out.println("Are you sure you wish to exit?");
int Answer = JOptionPane.showConfirmDialog(frame, "Are you sure want to exit?", "Quit", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (Answer == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
}
注:有類中的其他實現的方法..
反正我跑的問題是,當我點擊退出,然後單擊否,然後我嘗試用一個對話框來進行並說點擊確定..沒有任何反應。
我明白這與調用JOptionPane的UNINITIALIZED_VALUE有關。
我需要看到調用optionPane到這個UNINITIALIZED_VALUE。我認爲??
類似:
optionPane.setValue(JOptionPane.UNINITIALIZED_VALUE);
上面的代碼假設我要在訪問選項窗格不過。但是,在我的課堂'WindowWatcher'類中,我無法訪問它。
任何想法,我可以做到這一點?也許我可以將e.GetSource()作爲JOptionPane。
編輯。
((JOptionPane)e.getSource()).setValue(JOptionPane.UNINITIALIZED_VALUE);
上面沒有工作。 「JDialog不能作爲JoptionPane投射」
非常感謝!
JOptionPane也取消了,請我錯過目標 – mKorbel
請您在Q體內丟失編輯,請檢查一下是否重要 – mKorbel