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.

Was it helpful?

Solution

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

Check out RequestFocusListener found in Dialog Focus

OTHER TIPS

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();             
    }         
}; 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top