简体   繁体   中英

How do I change focus within ConfirmDialog?

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.

焦点问题的例子

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM