質問

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.

役に立ちましたか?

解決

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

Check out RequestFocusListener found in Dialog Focus

他のヒント

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();             
    }         
}; 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top