import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class BankTrans extends JFrame 
{
   //application data
   public Account oneTrans;
	
   // GUI Data
   JLabel lblDepositAmt = new JLabel();
   JLabel lblWithdrawAmt = new JLabel();
   JLabel lblBalance = new JLabel();
   JLabel lblStatus = new JLabel("                                     ");
   JTextField edtDepositAmt = new JTextField(10);
   JTextField edtWithdrawAmt = new JTextField(10);
   JTextField edtBalance = new JTextField(10);
   JButton pbDeposit = new JButton();
   JButton pbWithdraw = new JButton();


   public BankTrans()
	{
		//instantiate an object of CashTrans type
		oneTrans = new Account(100.0);
		
		initGUI();
	}
   
   private void deposit()
	{     
	   Double dAmt;

		dAmt = new Double(edtDepositAmt.getText());
		oneTrans.deposit(dAmt);
		edtBalance.setText(oneTrans.getBalance());
		lblStatus.setText("Transaction Complete");
	}

	private void withdraw() 
	{
		
		Double dAmt = new Double(edtWithdrawAmt.getText());
		oneTrans.withdraw(dAmt);
		   edtBalance.setText(oneTrans.getBalance());
		lblStatus.setText("Transaction Complete");
	}

	
	
	
	private void initGUI()
	{
       
		
		lblDepositAmt.setText("Deposit Amount");
		lblWithdrawAmt.setText("Withdrawl Amount");
		lblBalance.setText("Balance");

		
		lblStatus.setText("Choose  a Transaction ");
		edtDepositAmt.setText("");
		edtWithdrawAmt.setText("");
		edtBalance.setText("");

		pbDeposit.setText("Deposit");
		pbDeposit.addActionListener(new ActionListener() {
                  public void actionPerformed( ActionEvent e )
		      { deposit(); }}
		      );
		
		
		pbWithdraw.setText("Withdraw");
		pbWithdraw.addActionListener(new ActionListener() {
                  public void actionPerformed( ActionEvent e )
		      { withdraw(); }}
		      );
		 
		Container c = getContentPane();
		c.setLayout( new GridLayout(5,2 ));
		c.add(lblWithdrawAmt); 
		c.add(edtWithdrawAmt); 
		
		c.add(lblDepositAmt);
		c.add(edtDepositAmt);
		
		c.add(lblBalance); 
		c.add(edtBalance);
		
		c.add(pbWithdraw);
		c.add(pbDeposit); 
		
		c.add(lblStatus); 
		setSize (300,300);
		show();					
	}
	
	
	
	public static void main(String args[])
	{
		BankTrans b  = new BankTrans();
		b.addWindowListener(new WindowAdapter() {
		      public void windowClosing( WindowEvent e )
		      {
			 System.exit( 0 );
		      }
		   }
				    );
	}

	


}
