I just spent 5 minutes looking over your code and I have no idea what you're talking about. Could you explain what you want each one of your classes to do? Then, explain which of these classes is not working like you want it to, and explain how you want it to work. You only posted two classes, neither of which contains a main method. And you're talking about FunctionPanel, but you didn't say what FunctionPanel does. Also, post the code for any classes that you want help with that currently aren't working.
Btw, to further explain what others have said, here is what you want to do:
If you want class ATM to be able to update class BankGUI, then the constructor for ATM would look like this:
public ATM(BankGUI theGUI, ....){
atmsBankGUI = theGUI; //ATM has to have a variable called atmsBankGUI
}
And lets say ATM lets you withdraw money.
public void withdraw(){
int amount = dollarAmount; //get the dollar amount the user wants to withdraw
atmsBankGUI.withDrawCash(amount);
}
//Now, this method would be in the BankGUI class
withDrawCash(){
//Do whatever you have to, to make the GUI display the withdrawal
//For example, you could use JLabel.setValue to set it to the new amount of money the user has.
}
If you wanted to do the opposite, the BankGUI class to be able to get input from the user, but you wanted the ATM class to do the calculations (for example, the user types the amount they want to withdraw in the BankGUI, but you want to calculate this amount in ATM class) you would do the opposite: When you invoked the BankGUI classes constructor, one of the arguments passed would be an ATM. You could also do a mixture of the two.