Question

I have a ConfirmDialog that pops up asking the user to enter their password. I inserted a JPasswordField into the dialog to conceal the password. That all works fine.

The issue I'm having at the moment is: when the dialog pops up, focus is given to the 'OK' button instead of the JPasswordField. As shown below.

Example of focus issue

I would like to know how I would go about changing the focus from the 'OK' button to the password field.

Here's the code I have so far:

JPasswordField passField = new JPasswordField();
        
int option = JOptionPane.showConfirmDialog(null, passField, "Enter password", JOptionPane.OK_CANCEL_OPTION);

I have no idea where to go from here so any help would be greatly appreciated.

Thanks.

Était-ce utile?

La solution

focus is given to the 'OK' button instead of the JPasswordField.

Check out RequestFocusListener found in Dialog Focus

Autres conseils

I would implement my own JDialog instatn of using JOptionsPane

OR you can try something like this:

JPasswordField pass = new JPasswordField()         
{
    public void addNotify()             
    {                 
        super.addNotify();
        requestFocusInWindow();             
    }         
}; 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top