I have a custom dialog box that collects two strings from the user. I use OK_CANCEL_OPTION for the option type when creating the dialog. Evertyhings works except when a user clicks cancel or closes the dialog it has the same effect has clicking the OK button.
How can i handle the cancel and close events?
Heres the code I'm talking about:
JTextField topicTitle = new JTextField();
JTextField topicDesc = new JTextField();
Object[] message = {"Title: ", topicTitle, "Description: ", topicDesc};
JOptionPane pane = new JOptionPane(message, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
JDialog getTopicDialog = pane.createDialog(null, "New Topic");
getTopicDialog.setVisible(true);
// Do something here when OK is pressed but just dispose when cancel is pressed.
I think a better option for you would be to use the following code
JTextField topicTitle = new JTextField();
JTextField topicDesc = new JTextField();
Object[] message = {"Title: ", topicTitle, "Description: ", topicDesc};
Object[] options = { "Yes", "No" };
int n = JOptionPane.showOptionDialog(new JFrame(),
message, "",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
options, options[1]);
if(n == JOptionPane.OK_OPTION){ // Afirmative
//....
}
if(n == JOptionPane.NO_OPTION){ // negative
//....
}
if(n == JOptionPane.CLOSED_OPTION){ // closed the dialog
//....
}
by using the showOptionDialog method, you are getting an result based on what the user does, so you don't need to do anything else except for interpret that result