Camick のコードを使用して、 JPasswordField
(最後に)私のフォーカスをリクエストしています:
最初に表示されるときはパスワード フィールドにフォーカスがありますshowConfirmDialog
が、2 回目にダイアログが表示されると (パスワードが間違っているか、ボタンをもう一度クリックしたため)、フォーカスは [OK] に移動し、その後パスワードに戻ります。次回のフィールド。これが私のコードです...
int resp;
String orgPwd;
String givenPwd;
JPasswordField pwd = new JPasswordField(10);
do {
pwd.setText("");
pwd.addAncestorListener(new RequestFocusListener());
diagResp = JOptionPane.showConfirmDialog(null, pwd, "Enter Password", JOptionPane.OK_CANCEL_OPTION);
givenPwd = new String(pwd.getPassword());
if (resp != JOptionPane.OK_OPTION) { return false; }
} while (!givenPwd.equals(orgPwd));