'Closing a dialog created by JOptionPane.showOptionDialog()
I am creating an options dialog using JOptionPane.showOptionDialog(...);
For the options parameter I am passing an array of JButtons each with its own ActionListener.
One of these buttons is responsible for closing the dialog. My question is: what code do I place in the close button's event handler to close the option dialog?
A point that may make a difference: the class responsible for showing this dialog is a singleton and, as such, the method responsible for displaying the dialog is static. Therefore, calling javax.swing.JInternalFrame.doDefaultCloseAction(); does not work "from a static context".
Thanks
Solution 1:[1]
final JButton btn = new JButton("Close");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Window w = SwingUtilities.getWindowAncestor(btn);
if (w != null) {
w.setVisible(false);
}
}
});
Solution 2:[2]
Try
JOptionPane.getRootFrame().dispose();
Solution 3:[3]
JOptionPane is closed by calling its setValue method
(Speaking of dirty side effects)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Adamski |
| Solution 2 | Steve C |
| Solution 3 | Zweibieren |
