java - 从按钮获取输入并验证其正确还是错误

标签 java validation input jframe jbutton

我正在创建一台具有 pin 功能的 ATM 机。问题是我想在用户按下按钮时从按钮获取输入并验证其正确还是错误。当按下按钮时,它将把结果存储在字符串中。然后它将用于验证其正确还是错误。例如:用户A按下012345。然后每个数字将被存储到另一个字符串中以进行验证。然后将该字符串与引脚进行比较。

公共(public)类atmMachine:

int numberPinButton = 10;
String pin = "012345";
String zero, one, two, three, four, five, six, seven, eight, nine;

公共(public) atm 机:

panel = new JPanel();
pinButton = new JButton[numberPinButton];
for(int i = 0; i < numberPinButton; i++) {
    pinButton[i] = new JButton("" + i);
    pinButton[i].addActionListener(this);
    panel.add(pinButton[i]);
}
enterButton = new JButton("Enter");
enterButton.addActionListener(this);
panel.add(enterBtn);
panel.setBorder(BorderFactory.createTitledBorder("Enter your pin:"));
add(panel, BorderLayout.WEST);

已执行的公共(public)无效操作:

public void actionPerformed(ActionEvent event) {
        if(event.getSource() == pinButton[0]) {
            zero = "0";
        } else if(e.getSource() == pinButton[1]) {
            one = "1";
        } else if(e.getSource() == pinButton[2]) {
            two = "2";
        } else if(e.getSource() == pinButton[3]) {
            three = "3";
        } else if(e.getSource() == pinButton[4]) {
            four = "4";;
        } else if(e.getSource() == pinButton[5]) {
            five = "5";
        } else if(e.getSource() == pinButton[6]) {
            six = "6";
        } else if(e.getSource() == pinButton[7]) {
            seven = "7";
        } else if(e.getSource() == pinButton[8]) {
            eight = "8";
        } else if(e.getSource() == pinButton[9]) {
            nine = "9";
        }

        if(e.getSource() == enterBtn) {
            if(???.equals(pin)) {
                System.out.println("Correct");
            } else {
                System.out.println("Wrong");
            }
        }
}

最佳答案

有一个实例变量-

StringBuffer userKeyString = new StringBuffer();

执行操作后,附加按下的任何数字按钮-

userKeyString.append(event.getActionCommand());

执行操作时,如果按下 Enter 键 -

if(event.getSource() == enterBtn){

    if(pin.equals(userKeyString.toString()){

        // Correct pin

    } else {

        // Incorrect pin

    }

    userKeyString.setLength(0); // Clear the buffer for next input and validation

} else {

    userKeyString.append(event.getActionCommand());

}

您应该设置按钮的操作命令-

for(int i = 0; i < numberPinButton; i++) {
    pinButton[i] = new JButton("" + i);
    pinButton[i].setActionCommand(String.valueOf(i));
    pinButton[i].addActionListener(this);
    panel.add(pinButton[i]);
}

关于java - 从按钮获取输入并验证其正确还是错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17873399/

相关文章:

java - 带有配置服务器的 Spring Cloud Eureka

javascript - React 中单选按钮的动态数量验证

Java Mockito 卡在单例方法的 doReturn 处

java - HashMap<K,V> 仅由 hashCode()

java - 如何覆盖方法以调用父类(super class)的父类(super class)方法?

java - 如何绕过 "This expression is not supported in the current option setting"错误

javascript - 如何在登录验证中自定义验证消息位置?

css - 在 html 中输入占位符标记

jquery - 如何检查多个输入组中是否重复出现?

Java,Swing - 无法在 JFrame 上画线