私はデスクトップアプリケーションを開発中です。このアプリケーションでは、私はなど、ログイン操作のための仮想キーボード/ numberpadを使用する必要がJavaで仮想番号パッドを作成
をし、ボタンの作成コードが
numberButtons = new JButton[10];
for(int i = 0; i < numberButtons.length; i++) {
numberButtons[i] = new JButton(String.valueOf(i));
numberButtons[i].setFont(new java.awt.Font("Open Sans", 0, 14));
numberButtons[i].setPreferredSize(new java.awt.Dimension(100, 50));
numberButtons[i].addActionListener(new ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
numberButtonActionPerformed(evt);
}
});
numberPanel.add(numberButtons[i]);
}
とアクションですメソッドは:
private void numberButtonActionPerformed(ActionEvent evt) {
String currentPassword = ((JButton) evt.getSource()).getText();
passwordField.requestFocus();
passwordField.setText(passwordField.getText() + currentPassword);
if (Arrays.equals(pass, passwordField.getPassword())) {
System.out.println("Correct");
}
}
ですが、jpasswordfieldのgettextメソッドが送出されます。使用することはお勧めしません。私は、すべてのボタンに対してactionperformedメソッドを記述し、各ボタンのアクションで "KeyEvent.VK_"を使用する別のアイディアを持っています。しかし、私はそれを行う適切な方法だとは思わない。あなたは何をお勧めします?
各ボタンは配列またはリストにcharを追加する必要がありますが、これはパスワードの 'String'を生成しません。 'JPasswordField'の' Document'に直接コンテンツを挿入する必要があるかもしれません – MadProgrammer
ボタンをクリックしたときにpasswordfieldにcharを追加したいので、文字列を使うのに必要な 'passwordfield.settext'メソッドを使う必要がありました。 あなたが言及したJPasswordFieldのドキュメントに直接挿入するもう1つの方法はありますか? – Emre
いいえ、Document#insertStringを使用して、各文字(個々のStringとして)を文書 – MadProgrammer