n0p*_*0pe 5 java passwords swing joptionpane jpasswordfield
这可能看起来微不足道,但我无法弄清楚如何在此对话框焦点中给出密码框.
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
public class PasswordBox {
@SuppressWarnings("unused")
public String prompt() {
JPasswordField pass = new JPasswordField(10);
int action = JOptionPane.showConfirmDialog(null, pass,"Enter Password",JOptionPane.OK_CANCEL_OPTION);
return new String(pass.getPassword());
}
}
Run Code Online (Sandbox Code Playgroud)
我从其他类调用它: String tmpPASS = new PasswordBox().prompt();
出于某种原因,当对话框出现时,"确定"按钮会获得焦点.
stacktrace(参见Eng.Fouad的回答):
at javax.swing.JComponent.addNotify(Unknown Source)
at PasswordBox$1.addNotify(PasswordBox.java:14)
at java.awt.Container.addNotify(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
查看Dialog Focus中提供的解决方案.
编辑:
使用Eng Fouad建议的方法我相信代码应该是:
JPasswordField pass = new JPasswordField(10)
{
public void addNotify()
{
super.addNotify();
requestFocusInWindow();
}
};
Run Code Online (Sandbox Code Playgroud)
EDIT2:
"Dialog Focus"博客条目中的链接包含一条注释,其中包含适用于Linux的建议.
| 归档时间: |
|
| 查看次数: |
5610 次 |
| 最近记录: |