Search code examples
javaswingmouseeventjoptionpane

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


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);

Solution

  • 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.