Hey guys,when i go to enter the same account number as i am logged into as well as any other account and click ok the error message displays however it does not stop me from progressing to transfer money to myself. I have had a shot at it however as i'm new and not sure what to do?

public void actionPerformed(ActionEvent e) {
        String cmd = e.getActionCommand();
        String id = passwordField.getText();  //gets "input" from text entry
        String transferaccount_id = atmData.getTransferaccount_id(id);
        String accountbalance = atmData.getAccountbalance(id);
      
        if (QUIT.equals(cmd)) { //User hits Quit button.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                  public void run() {
                  atm.loginGUI();
                  }
                });                                    
        } 
        if (CONTINUE.equals(cmd)) {
                char[] pwid = passwordField.getPassword();
                String intransferaccount_id =  new String (pwid);
   
                if  (transferaccount_id.isEmpty()) {    // Account matches return from atmData.getid_inf
                JOptionPane.showMessageDialog(controllingFrame,
                "Invalid Account Number. Try again.",
                    "Error Message",
                    JOptionPane.ERROR_MESSAGE);
               
                }else if (intransferaccount_id.equals(transferaccount_id)){
                JOptionPane.showMessageDialog(controllingFrame,
                    "The account you have selected to transfer funds to is " + atmData.getTransferaccount_id (id));
                    atm.transferamountGUI();
                   

                    if (intransferaccount_id.equals(transferaccount_id)){
                String newBalance1 = atmData.getBalance();
                    for (int i = 0; i <= lines ; i++) {
                    newBalance1 = accountbalance;
                    lineTo = i;
                    break; 
                
                }
            
             if (transferaccount_id==transferaccount_id){
                   JOptionPane.showMessageDialog(controllingFrame,
                "You cannot transfer money to yourself!. Try again.",
                    "Error Message",
                    JOptionPane.ERROR_MESSAGE);
              
                }
            
            }
        }
    }
}

as you can see i have added this method to try and stop it however it continues to progress!

if (transferaccount_id==transferaccount_id){ JOptionPane.showMessageDialog(controllingFrame,
"You cannot transfer money to yourself!. Try again.",
"Error Message",
JOptionPane.ERROR_MESSAGE);

As transferaccount_id is string then use string function to compare and thats equals function

if(name.equals("String you want to match");

hi thanks but i'm still getting the same problem =( here it is updated to the way you mentioned

if (intransferaccount_id.equals(intransferaccount_id)){
                   JOptionPane.showMessageDialog(controllingFrame,
                "You cannot transfer money to yourself!. Try again.",
                    "Error Message",
                    JOptionPane.ERROR_MESSAGE);

Edited 5 Years Ago by Ezzaral: Added code tags. Please use them to format any code that you post.

Use trim and upper/lower case function also because matching small string with large will always return false event the content are same, also spaces can give problem.

Edited 5 Years Ago by Majestics: n/a

Looking at your posts I see

if (transferaccount_id==transferaccount_id){

and

if (intransferaccount_id.equals(intransferaccount_id)){

but in both cases you are comparing the same object to itself!
I would expect to see something more like

if (accountBeingTransferredFrom.equals(accountBeingTransferredInto)) {
   // can't transfer to same account

(but with your own variable names, obviously)

public void actionPerformed(ActionEvent e) {
        String cmd = e.getActionCommand();
        String id = passwordField.getText();  //gets "input" from text entry
        String transferaccount_id = atmData.getTransferaccount_id(id);
        String accountbalance = atmData.getAccountbalance(id);
        String accountBeingTransferredFrom = passwordField.getText();
        String accountBeingTransferredInto = passwordField.getText();
        if (CONTINUE.equals(cmd)) {
                char[] pwid = passwordField.getPassword();
                String intransferaccount_id =  new String (pwid);
                 
               
                if  (transferaccount_id.isEmpty()) {    // Account matches return from atmData.getid_inf
                JOptionPane.showMessageDialog(controllingFrame,
                "Invalid Number. Try again.",
                    "Error Message",
                    JOptionPane.ERROR_MESSAGE);
               
                }else if (intransferaccount_id.equals(transferaccount_id)){
                JOptionPane.showMessageDialog(controllingFrame,
                    "The account you have selected to transfer funds to is " + atmData.getTransferaccount_id (id));
                    atm.transferamountGUI();
                   

                    if (intransferaccount_id.equals(transferaccount_id)){
                String newBalance1 = atmData.getBalance();
                    for (int i = 0; i <= lines ; i++) {
                    newBalance1 = accountbalance;
                    lineTo = i;
                    break; 
                
                }
            
        }
        if (accountBeingTransferredFrom.equals(accountBeingTransferredInto))

                   JOptionPane.showMessageDialog(controllingFrame,
                "You cannot transfer money to yourself!. Try again.",
                    "Error Message",
                    JOptionPane.ERROR_MESSAGE);
             
            
            }
    }
}

Ok so i tried your advice, however it still is not working ='(

with your own variable names

you ignored that bit of my "advice".
Frankly, if you think you can just paste in some code that doesn't use your own variable names then maybe computer programming isn't the career for you.

Would it matter though? because i assigned the variables to those names...

But you set them both to be the contents of the password field!
I honestly don't know what's going on here. Maybe I'm not the right person to help with this. Just ignore me, I'm sure someone else will be better able to advise you. Sorry. J

This article has been dead for over six months. Start a new discussion instead.