How can I add a listener on the ok button of JOptionPane?

earthmover picture earthmover · Sep 10, 2013 · Viewed 12.7k times · Source

How can I add a listener on the click of "OK" button of JOptionPane.INFORMATION_MESSAGE.

My JOptionPane is:

JOptionPane.showMessageDialog(null, "Your password is: " + password, "Your Password", JOptionPane.INFORMATION_MESSAGE);

Answer

cyon picture cyon · Sep 10, 2013

The showMessageDialog method returns void when the user closes or clicks ok. But you can use the method JOptionPane.showOptionDialog with a single DEFAULT_OPTION for the OK button. The showOptionDialog will return 0 if OK was clicked and -1 if the user closed the dialog.

int res = JOptionPane.showOptionDialog(null, "Hello", "Test", JOptionPane.DEFAULT_OPTION,
        JOptionPane.INFORMATION_MESSAGE, null, null, null);

System.out.println(res);

You don't need a listener because the javadoc says:

Each showXxxDialog method blocks the caller until the user's interaction is complete.