Je développe une application de bureau. Dans cette application, je dois utiliser le clavier virtuel/numberpad pour les opérations de connexion, etc.Création d'un pavé numérique virtuel en Java
J'ai créé un JFrame comme ceci:
et le code de création de boutons est
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]);
}
et de l'action la méthode est:
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");
}
}
mais la méthode gettext de jpasswordfield est envoyée. Il n'est pas recommandé d'utiliser. J'ai une autre idée pour écrire la méthode actionperformed pour chaque bouton et utiliser "KeyEvent.VK_" dans l'action de chaque boutons. Cependant, je ne pense pas que ce soit une bonne façon de le faire. Que recommanderais-tu?
Chaque bouton doit ajouter un caractère à un tableau ou une liste, ce que vous essayez de faire, n'est pas générer un 'String' du mot de passe. Vous devrez peut-être insérer du contenu directement dans 'Document' de' JPasswordField' – MadProgrammer
Puisque je veux ajouter un caractère à passwordfield quand le bouton est cliqué, j'ai dû utiliser la méthode 'passwordfield.settext' dont j'avais besoin pour utiliser la chaîne. Quelle est l'autre manière d'insérer directement dans le document de JPasswordField que vous avez mentionné? – Emre
Non, vous devez utiliser le document # insertString, en insérant chaque caractère (en tant que chaîne individuelle) dans le document – MadProgrammer