如何在ConfirmDialog中更改焦点?

时间:2013-08-08 15:54:15

标签: java swing focus joptionpane jpasswordfield

我弹出一个ConfirmDialog,要求用户输入密码。 我在对话框中插入了一个JPasswordField来隐藏密码。一切正常。

我目前遇到的问题是:当对话框弹出时,焦点将放在“确定”按钮而不是JPasswordField上。如下图所示。

Example of focus issue

我想知道如何将焦点从“确定”按钮更改为密码字段。

这是我到目前为止的代码:

JPasswordField passField = new JPasswordField();

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

我不知道从哪里开始,所以任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

  

关注“确定”按钮而不是JPasswordField。

查看Dialog Focus

中的RequestFocusListener

答案 1 :(得分:0)

我会使用JDialog

实现我自己的JOptionsPane instatn

或者您可以尝试这样的事情:

JPasswordField pass = new JPasswordField()         
{
    public void addNotify()             
    {                 
        super.addNotify();
        requestFocusInWindow();             
    }         
};