swing - GUI Bank Account Java -


i'm having problems deposit , withdraw buttons. don't when click on them.
goal have user deposit , withdraw account.
sorry i'm new gui thing.

bankaccount file deposit , withdraw calculations

public class bankaccount {       private double balance;      public bankaccount() {            balance = 0;     }      public bankaccount(double initialbalance) {            balance = initialbalance;     }      public void deposit(double amount) {           double newbalance = balance + amount;         balance = newbalance;     }      public void withdraw(double amount) {            double newbalance = balance - amount;         balance = newbalance;     }      public double getbalance() {            return balance;     } } 



i'm having trouble in file @ actionperformed method.

import java.awt.borderlayout; import java.awt.flowlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jtextfield; class accountpanel extends jpanel implements actionlistener {       private jlabel amountlabel, resultlabel;     private jtextfield amounttextfield;        private jbutton depositbutton, withdrawbutton;     private bankaccount account;     double result;      public accountpanel() {         jpanel displaypanel = new jpanel();          displaypanel.setlayout(new flowlayout(flowlayout.left));          amountlabel = new jlabel("amount:");          displaypanel.add(amountlabel);          amounttextfield = new jtextfield(13);          displaypanel.add(amounttextfield);           jpanel resultpanel = new jpanel();          resultpanel.setlayout(new flowlayout(flowlayout.left));          resultlabel = new jlabel("balance = ");          resultpanel.add(resultlabel);          //buttons         jpanel buttonpanel = new jpanel();          buttonpanel.setlayout(new flowlayout(flowlayout.right));          // deposit button          depositbutton = new jbutton("deposit");          buttonpanel.add(depositbutton);           // withdraw         withdrawbutton = new jbutton("withdraw");          buttonpanel.add(withdrawbutton);           // add panels main panel          this.setlayout(new borderlayout());          this.add(displaypanel, borderlayout.west);         this.add(resultpanel, borderlayout.south);          this.add(buttonpanel, borderlayout.east);      }        public void actionperformed(actionevent e) {         object source = e.getsource();          if (source == depositbutton) {             double dp = double.parsedouble(amounttextfield.gettext());             double dpamount = account.getbalance() + dp;             account.deposit(dpamount);             result = dpamount;             resultlabel.settext("" + result);             depositbutton.addactionlistener(this);          }         else if (source == withdrawbutton) {              double wd = double.parsedouble(amounttextfield.gettext());             account.withdraw(wd);             resultlabel.settext("" + result);             withdrawbutton.addactionlistener(this);          }     } } 



import java.awt.dimension; import java.awt.toolkit; import java.awt.window; import javax.swing.jframe; import javax.swing.jpanel; class accountframe extends jframe {      private static final int frame_width = 400;     private static final int frame_height = 100;      public accountframe() {          settitle("bank account");          setsize(frame_width, frame_height);          centerwindow(this);          setresizable(false);          setdefaultcloseoperation(jframe.exit_on_close);          jpanel panel = new accountpanel();          this.add(panel);      }       private void centerwindow(window w) {          toolkit tk = toolkit.getdefaulttoolkit();          dimension d = tk.getscreensize();          setlocation((d.width-w.getwidth())/2,          (d.height-w.getheight())/2);      }  } 



import javax.swing.*;  public class account{      public static void main(string[] args) {          jframe frame = new accountframe();          frame.setvisible(true);      }  }  

try doing instead of using single actionperformed() method:

register event handler first (you missed step):

  depositbutton.addactionlistener(new actionlistener() {      public void actionperformed(actionevent evt) {        handledepositbuttonevent(evt);      }   }); 

implement custom event handler event:

  private void handledepositbuttonevent(actionevent evt){      double dp = double.parsedouble(amounttextfield.gettext());      double dpamount = account.getbalance() + dp;      account.deposit(dpamount);      result = dpamount;      resultlabel.settext("" + result);   } 

do each button , component generating events want capture; separate action methods easier read , maintain.

by way, don't add action listener in action listener! makes no sense, , won't work anyway.

if (source == depositbutton) {     double dp = double.parsedouble(amounttextfield.gettext());     ...     depositbutton.addactionlistener(this); //<--- don't }  

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -