【问题标题】:Making a ENTER button for my banking app为我的银行应用程序制作一个 ENTER 按钮
【发布时间】:2014-10-06 16:00:39
【问题描述】:

我正在尝试制作一个有 10 个按钮 0-10 并且只接受 4 位数字的登录屏幕。我存储了一些名为 PIN0-PIN03 的变量,其中包含一个 int 值。我希望用户输入 4 位密码,如果它与存储在变量 PIN0-PIN03 中的值匹配,则会出现一个名称。

我已经完成了这个按钮,我只需要这个 ENTER 按钮的帮助

我用于 ENTER 按钮的代码是:

int pin = 0000;
int PIN0 = 1234; // if user enters this value the program will start executing the if statments.
int PIN1 = 2345;
int PIN2 = 3456;
int PIN3 = 4567;\\

if (pin == PIN0){

System.out.println("Hi Muhannad");
if (pin == PIN0){ // if user enters PIN0 it will display the below message

System.out.println("Hi Muhannad");
}

if( pin == PIN1){
System.out.println("Hi Mo");
}

if( pin == PIN2){
System.out.println("Hi Mahir");
}

if( pin == PIN3){


System.out.println("Hi Gawi");
}

if(pin != PIN0 || pin != PIN1 || pin != PIN2 || pin != PIN3){
System.out.println("Incorrect pin try again!");  // if user enters anything that doesn't match any of the variables values the "Incorrect pin try again" will apear. 
}

我这样做对吗?

请帮助这是我在自己的时间开始的一个项目,旨在创建一个类似于银行应用程序的应用程序。

按钮代码:

private void buttonOneActionPerformed(java.awt.event.ActionEvent evt) {                                          
if(evt.getSource() == buttonOne){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("0");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "1");
                }
            }
}
}                                         

private void buttonTwoActionPerformed(java.awt.event.ActionEvent evt) {                                          
if(evt.getSource() == buttonTwo){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("2");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "2");
                }
            }
}
}                                         

private void buttonThreeActionPerformed(java.awt.event.ActionEvent evt) {                                            
if(evt.getSource() == buttonThree){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("3");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "3");
                }
            }
}
}                                           

private void buttonFourActionPerformed(java.awt.event.ActionEvent evt) {                                           
if(evt.getSource() == buttonFour){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("4");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "4");
                }
            }
}
}                                          

private void buttonFiveActionPerformed(java.awt.event.ActionEvent evt) {                                           
if(evt.getSource() == buttonFive){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("5");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "5");
                }
            }
}
}                                          

private void buttonSixActionPerformed(java.awt.event.ActionEvent evt) {                                          
if(evt.getSource() == buttonSix){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("6");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "6");
                }
            }
}// TODO add your handling code here:
}                                         

private void buttonSevenActionPerformed(java.awt.event.ActionEvent evt) {                                            
if(evt.getSource() == buttonSeven){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("7");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "7");
                }
            }
}
}                                           

private void buttonEightActionPerformed(java.awt.event.ActionEvent evt) {                                            
if(evt.getSource() == buttonEight){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("8");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "8");
                }
            }
}
}                                           

private void buttonNineActionPerformed(java.awt.event.ActionEvent evt) {                                           
if(evt.getSource() == buttonNine){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("9");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "9");
                }
            }
}
}                                          

private void buttonZeroActionPerformed(java.awt.event.ActionEvent evt) {                                           
if(evt.getSource() == buttonZero){
            if(jTextField1.getText().length() < 4){
                if(clearField == 1){
                    jTextField1.setText("0");
                    clearField = 0;
                } else{
                    jTextField1.setText(jTextField1.getText() + "0");
                }
            }
}

【问题讨论】:

  • 那么当用户在键盘上按下回车键时,您希望它运行这段代码吗?
  • 虽然与您的问题无关,但您的最后一个 if 语句包含一个小错误。它应该是 pin != PIN1
  • @DreadHeadedDeveloper 是的,我希望它能够做到这一点,但是当我运行代码时,即使我输入了正确的引脚号,我仍然会收到“不正确的引脚再试一次”。为什么我一定做错了什么。
  • @MrHug 感谢您指出这一点!我完全错过了
  • 啊,那么在这种情况下,展示您的代码如何处理输入,用户在哪里输入他们的输入?这就是我们解决这个问题所需要的代码

标签: java arrays swing


【解决方案1】:

你没有提供很多关于你的代码应该如何工作的信息,但这里有一个例子:

public class Bank extends JFrame {

    static final int PIN0 = 1234;
    static final int PIN1 = 2345;
    static final int PIN2 = 3456;
    static final int PIN3 = 4567;

    JTextField tf = new JTextField();

    public Bank() {

        JPanel buttonsPanel = new JPanel(new GridLayout(4, 3));

        for (int i = 0; i < 10; i++) {
            JButton button = new JButton(String.valueOf(i));
            button.addActionListener(new NumberAction(i));
            buttonsPanel.add(button);
        }

        JButton enterButton = new JButton("Enter");
        enterButton.addActionListener(new EnterAction());

        getContentPane().add(tf, BorderLayout.PAGE_START);
        getContentPane().add(buttonsPanel, BorderLayout.CENTER);
        getContentPane().add(enterButton, BorderLayout.PAGE_END);

        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }

    class NumberAction extends AbstractAction {

        int i;

        NumberAction(int i) {

            this.i = i;
        }

        @Override
        public void actionPerformed(ActionEvent e) {

            if (tf.getText().length() < 4)
                tf.setText(tf.getText() + i);
        }
    }

    class EnterAction extends AbstractAction {

        @Override
        public void actionPerformed(ActionEvent e) {

            switch (Integer.parseInt(tf.getText())) {
                case PIN0:
                    System.out.println("Hi 0");
                    break;
                case PIN1:
                    System.out.println("Hi 1");
                    break;
                case PIN2:
                    System.out.println("Hi 2");
                    break;
                case PIN3:
                    System.out.println("Hi 3");
                    break;
                default:
                    System.out.println("Incorrect pin try again!");
            }

            tf.setText("");
        }
    }

    public static void main(String args[]) {

        new Bank();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    相关资源
    最近更新 更多