我正在开发一个桌面应用程序。在这个应用程序中,我必须使用虚拟键盘/数字键盘进行登录操作等。
和按钮的创建代码是
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_”。但是,我认为这不是正确的方法。你会推荐什么?