0% found this document useful (0 votes)
612 views31 pages

Bank Simulator in JAVA (Swings)

This document describes a Java program that simulates a basic bank account system using a graphical user interface (GUI). It creates a main window with menus to open new accounts, close accounts, make deposits, and withdrawals. Internal frames are used to display account information and take user input for transactions. Database connectivity is implemented to retrieve account numbers and update balances. Event listeners are added to buttons to handle user interactions.

Uploaded by

Ankit Maini
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
612 views31 pages

Bank Simulator in JAVA (Swings)

This document describes a Java program that simulates a basic bank account system using a graphical user interface (GUI). It creates a main window with menus to open new accounts, close accounts, make deposits, and withdrawals. Internal frames are used to display account information and take user input for transactions. Database connectivity is implemented to retrieve account numbers and update balances. Event listeners are added to buttons to handle user interactions.

Uploaded by

Ankit Maini
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 31

// bank Simulator in JAVA

import javax.swing.JFrame;

import javax.swing.JMenuBar;

import javax.swing.JMenu;

import javax.swing.JMenuItem;

import javax.swing.JTextArea;

import java.awt.event.KeyEvent;

import javax.swing.JDesktopPane;

import javax.swing.JInternalFrame;

import java.awt.Color;

import java.awt.Toolkit;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

import java.awt.FlowLayout;

import java.sql.*;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

class BankSimulator extends WindowAdapter implements ActionListener

JFrame frame;
JMenuBar menubar;

JMenu mAccount,mTransaction;

JMenuItem miNew,miClose,miExit,miDeposit,miWithdraw;

JDesktopPane desktopPane;

JInternalFrame newAccount,closeAccount,depositAccount,withdrawAccount;

Toolkit toolKit;

Dimension dimension;

static boolean flag = false;

static boolean flag2 = false;

JLabel deposit_lbAccNo=null;

JTextField
tfAccNo,tfName,tfAmmount,close_tfAccNo,close_tfName,close_tfAmt,deposit_tfAccNo,deposit_tfName,
deposit_tfBal,deposit_tfAmt;

JTextField withdraw_tfAccNo,withdraw_tfName,withdraw_tfBal,withdraw_tfAmt;

BankSimulator()

frame = new JFrame("Bank Simulator in JAVA");

menubar = new JMenuBar();

frame.add(menubar);

mAccount = new JMenu("Account");

mAccount.setMnemonic(KeyEvent.VK_A);
mTransaction = new JMenu("Transaction");

mTransaction.setMnemonic(KeyEvent.VK_T);

miNew = new JMenuItem("New Account");

miNew.setMnemonic(KeyEvent.VK_N);

miClose = new JMenuItem("Close Account");

miClose.setMnemonic(KeyEvent.VK_O);

miExit = new JMenuItem("Exit");

miExit.setMnemonic(KeyEvent.VK_F4);

miDeposit = new JMenuItem("Deposit");

miWithdraw = new JMenuItem("WithDraw");

mAccount.add(miNew);

mAccount.add(miClose);

mAccount.add(miExit);

mTransaction.add(miDeposit);

mTransaction.add(miWithdraw);

menubar.add(mAccount);

menubar.add(mTransaction);

frame.setJMenuBar(menubar);

desktopPane = new JDesktopPane(); // create DESKTOP


PANE

desktopPane.setBackground(Color.RED);
toolKit = Toolkit.getDefaultToolkit(); // Toolkit is a abstract class in awt

dimension = toolKit.getScreenSize();

frame.add(desktopPane);

frame.setVisible(true);

frame.setBounds(0,0,800,600);

// ---------------------- Add Action Listner-----------------------------

frame.addWindowListener(this);

miNew.addActionListener(this);

miClose.addActionListener(this);

miExit.addActionListener(this);

miDeposit.addActionListener(this);

miWithdraw.addActionListener(this);

//--------------------------------------------------------------------------

public void windowClosing(WindowEvent we)


{

System.out.println("------------------------- Windows Closed------------------");

JFrame jFrame = (JFrame)we.getWindow();

if(jFrame == frame)

frame.dispose();

public void actionPerformed(ActionEvent ae)

JMenuItem jmi = null;

// String className = ae.getSource().getClass().toString();

jmi = (JMenuItem)ae.getSource();
if(jmi == miNew)

newAccount = new JInternalFrame("New Account",false,true,false,true); //


create JINTERNAL FRAME

newAccount.setBounds(200,200,320,200);

// newAccount.setBounds(30,30,dimension.width - 300, dimension.height - 300);

newAccount.setLayout(new FlowLayout());

JLabel lbAccNo = new JLabel("Account No");

JLabel lbName = new JLabel("Name");

JLabel lbAmount = new JLabel("Amount");

tfAccNo = new JTextField();

tfAccNo.setEditable(false);

tfAccNo.setColumns(20);

tfName = new JTextField();

tfName.setColumns(20);

tfAmmount = new JTextField();

tfAmmount.setColumns(20);

JButton create = new JButton("Create");

JButton cancel = new JButton("Cancel");

JButton close = new JButton("Close");

newAccount.add(lbAccNo);
newAccount.add(tfAccNo);

newAccount.add(lbName);

newAccount.add(tfName);

newAccount.add(lbAmount);

newAccount.add(tfAmmount);

newAccount.add(create);

newAccount.add(cancel);

newAccount.add(close);

// ----------------------- Adding Listner to Internal Frame components------------

create.addActionListener(new InternalActionListener());

close.addActionListener(new InternalActionListener());

cancel.addActionListener(new InternalActionListener());

//---------------------------------------------------------------------------------

desktopPane.add(newAccount);

newAccount.setVisible(true);

//----------------------- GET Account no from database ------------

try

Connection con = ConnectionClass.getConnection();

System.out.println ("Conn create ");

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("SELECT max(accountNo)


FROM banktable");
if(rs.next())

int a = rs.getInt(1);

a = a+1;

tfAccNo.setText(""+a);

ConnectionClass.closed();

catch(Exception ex)

System.out.println ("-------------------------------"+ex);

ex.printStackTrace();

finally

try{ConnectionClass.closed();}

catch(Exception es){es.printStackTrace();}

//--------------------------------------------------------------------

if(jmi == miClose)
{

flag = true;

System.out.println ("flag = "+flag +"and flag2 ="+flag2);

closeAccount = new JInternalFrame("Close Accout",false,true,false,true);

closeAccount.setBounds(200,200,320,200);

closeAccount.setLayout(new FlowLayout());

JLabel lbAccNo = new JLabel("Account No");

JLabel lbName = new JLabel("Name");

JLabel lbAmt = new JLabel("Amount");

close_tfAccNo = new JTextField();

close_tfAccNo.setName("close_tfAccNo");

close_tfAccNo.setColumns(20);

close_tfName = new JTextField();

// close_tfName.setEditable(false);

close_tfName.setColumns(20);

close_tfAmt = new JTextField();

close_tfAmt.setEditable(false);

close_tfAmt.setColumns(20);

JButton close_button_yes = new JButton("YES");

JButton close_button_no = new JButton("NO");

JButton close_button_close = new JButton("CLOSE");


closeAccount.add(lbAccNo);

closeAccount.add(close_tfAccNo);

closeAccount.add(lbName);

closeAccount.add(close_tfName);

closeAccount.add(lbAmt);

closeAccount.add(close_tfAmt);

closeAccount.add(close_button_yes);

closeAccount.add(close_button_no);

closeAccount.add(close_button_close);

// ----------------------- Adding Listner to Internal Frame components------------

close_tfAccNo.addActionListener(new InternalActionListener());

close_button_yes.addActionListener(new InternalActionListener());

close_button_no.addActionListener(new InternalActionListener());

close_button_close.addActionListener(new InternalActionListener());

//- --------------------------------------------------------------------------------

desktopPane.add(closeAccount);

closeAccount.setVisible(true);

if(jmi == miDeposit)

{
flag2 = true;

System.out.println ("flag = "+flag +"and flag2 ="+flag2);

depositAccount = new JInternalFrame("Deposit",false,true,false,true);

depositAccount.setBounds(200,200,320,200);

depositAccount.setLayout(new FlowLayout());

JLabel lbAccNo = new JLabel("Account No");

JLabel lbName = new JLabel("Name");

JLabel lbBal = new JLabel("Balance");

JLabel lbAmt = new JLabel("Amount");

deposit_tfAccNo = new JTextField();

deposit_tfAccNo.setColumns(20);

deposit_tfAccNo.setName("deposit_tfAccNo");

deposit_tfName = new JTextField();

deposit_tfName.setColumns(20);

deposit_tfName.setEditable(false);

deposit_tfBal = new JTextField();

deposit_tfBal.setColumns(20);

deposit_tfBal.setEditable(false);

deposit_tfAmt = new JTextField();

deposit_tfAmt.setColumns(20);

JButton deposit_button_update = new JButton("Update");

JButton deposit_button_cancel = new JButton("Cancel");


JButton deposit_button_close = new JButton("Close");

depositAccount.add(lbAccNo);

depositAccount.add(deposit_tfAccNo);

depositAccount.add(lbName);

depositAccount.add(deposit_tfName);

depositAccount.add(lbBal);

depositAccount.add(deposit_tfBal);

depositAccount.add(lbAmt);

depositAccount.add(deposit_tfAmt);

depositAccount.add(deposit_button_update);

depositAccount.add(deposit_button_cancel);

depositAccount.add(deposit_button_close);

// ----------------------- Adding Listner to Internal Frame components------------

deposit_tfAccNo.addActionListener(new InternalActionListener());

deposit_button_update.addActionListener(new InternalActionListener());

deposit_button_cancel.addActionListener(new InternalActionListener());

deposit_button_close.addActionListener(new InternalActionListener());

//- --------------------------------------------------------------------------------

desktopPane.add(depositAccount);

depositAccount.setVisible(true);
}

if(jmi == miWithdraw)

withdrawAccount = new JInternalFrame("Withdraw",false,true,false,true);

withdrawAccount.setBounds(200,200,320,200);

withdrawAccount.setLayout(new FlowLayout());

JLabel lbAccNo = new JLabel("Account No");

JLabel lbName = new JLabel("Name");

JLabel lbBal = new JLabel("Balance");

JLabel lbAmt = new JLabel("Amount");

withdraw_tfAccNo = new JTextField();

withdraw_tfAccNo.setColumns(20);

withdraw_tfName = new JTextField();

withdraw_tfName.setColumns(20);

withdraw_tfName.setEditable(false);

withdraw_tfBal = new JTextField();

withdraw_tfBal.setColumns(20);
withdraw_tfBal.setEditable(false);

withdraw_tfAmt = new JTextField();

withdraw_tfAmt.setColumns(20);

JButton withdraw_button_update = new JButton("Update.");

JButton withdraw_button_cancel = new JButton("Cancel.");

JButton withdraw_button_close = new JButton("Close.");

withdrawAccount.add(lbAccNo);

withdrawAccount.add(withdraw_tfAccNo);

withdrawAccount.add(lbName);

withdrawAccount.add(withdraw_tfName);

withdrawAccount.add(lbBal);

withdrawAccount.add(withdraw_tfBal);

withdrawAccount.add(lbAmt);

withdrawAccount.add(withdraw_tfAmt);

withdrawAccount.add(withdraw_button_update);

withdrawAccount.add(withdraw_button_cancel);

withdrawAccount.add(withdraw_button_close);

//-------------------- add listener to internal ------------------------

withdraw_tfAccNo.addActionListener(new InternalActionListener());

withdraw_button_update.addActionListener(new InternalActionListener());
withdraw_button_cancel.addActionListener(new InternalActionListener());

withdraw_button_close.addActionListener(new InternalActionListener());

//--------------------------------------------------------------------------

desktopPane.add(withdrawAccount);

withdrawAccount.setVisible(true);

if(jmi == miExit)

frame.dispose();

// Internal class for maintain internal action listener------------------------

//------------------------------------------------------------------------

public class InternalActionListener implements ActionListener

public void actionPerformed(ActionEvent e)

JButton button =null;

JTextField textField = null;

// String string = e.getActionCommand();


System.out.println ("===="+e.getSource().getClass()+"====");

// int id = e.getID();

if(e.getSource().getClass().toString().equals("class javax.swing.JButton"))

button = (JButton)e.getSource();

if(e.getSource().getClass().toString().equals("class javax.swing.JTextField"))

textField = (JTextField)e.getSource();

if(button!=null)

if(button.getText().equals("Create"))

System.out.println ("I m in create");

int account = Integer.parseInt(tfAccNo.getText());

String name = tfName.getText();

int ammount = Integer.parseInt(tfAmmount.getText());

try
{

Connection con = ConnectionClass.getConnection();

Statement stmt = con.createStatement();

String query = "insert into


bank.banktable(Name,accountNo,amount) values('"+name+"','"+

account+"','"+ammount+"')";

stmt.execute(query);

catch(Exception ex)

System.out.println ("hello"+ex);

finally

try{ConnectionClass.closed();}

catch(Exception ex){}

int j = JOptionPane.showConfirmDialog(null,"Account has been


created","",JOptionPane.PLAIN_MESSAGE);

System.out.println (j);

if(j==0)

newAccount.dispose();

}
if(button.getText().equals("Cancel"))

System.out.println("I m in Cancle");

tfAmmount.setText("");

tfName.setText("");

if(button.getText().equals("Close") || button.getText().equals("CLOSE"))

System.out.println("I m in Close");

if(button.getText().equals("Close"))

if(newAccount != null)

newAccount.dispose();

else if(depositAccount != null)

depositAccount.dispose();

if(button.getText().equals("CLOSE"))

closeAccount.dispose();

}
if(button.getText().equals("Close."))

withdrawAccount.dispose();

if(button.getText().equals("YES"))

try

Connection con = ConnectionClass.getConnection();

System.out.println ("Conn create ");

Statement stmt = con.createStatement();

String accno = close_tfAccNo.getText();

System.out.println (accno);

stmt.execute("delete from bank.banktable where accountNo =


"+accno+"");

int j = JOptionPane.showConfirmDialog(null,"Account
Closed","",JOptionPane.PLAIN_MESSAGE);

if(j==0)

closeAccount.dispose();

catch(Exception ex)
{

System.out.println ("-------------------------------"+ex);

ex.printStackTrace();

finally

try{ConnectionClass.closed();}

catch(Exception es){es.printStackTrace();}

if(button.getText().equals("NO"))

JOptionPane.showMessageDialog(null,"dfdf");

closeAccount.dispose();

if(button.getText().equals("Update"))

System.out.println ("I m in Update");

try

int bal = Integer.parseInt(deposit_tfBal.getText());


int total = bal + Integer.parseInt(deposit_tfAmt.getText());

String str = deposit_tfAccNo.getText();

Connection con = ConnectionClass.getConnection();

Statement stmt = con.createStatement();

boolean b = stmt.execute("update bank.banktable set amount


="+total+" where accountNo='"+str+"'");

System.out.println (b);

if(b==false)

System.out.println ("");

int jop = JOptionPane.showConfirmDialog(null,"Your


Account has been updated and your total ammount is "+total,"",JOptionPane.PLAIN_MESSAGE);

depositAccount.dispose();

ConnectionClass.closed();

catch(SQLException sqe)

sqe.printStackTrace();

// ConnectionClass.closed();

if(button.getText().equals("Update."))
{

System.out.println ("I m in Update");

try

int bal = Integer.parseInt(withdraw_tfBal.getText());

int total = bal - Integer.parseInt(withdraw_tfAmt.getText());

if(total<0)

total=0;

String str = withdraw_tfAccNo.getText();

Connection con = ConnectionClass.getConnection();

Statement stmt = con.createStatement();

boolean b = stmt.execute("update bank.banktable set amount


="+total+" where accountNo='"+str+"'");

System.out.println (b);

if(b==false)

System.out.println ("");

int jop = JOptionPane.showConfirmDialog(null,"Your


Account has been updated and your total amount is "+total,"",JOptionPane.PLAIN_MESSAGE);

withdrawAccount.dispose();

ConnectionClass.closed();

catch(SQLException sqe)
{

sqe.printStackTrace();

// ConnectionClass.closed();

if(textField!=null)

// System.out.println(close_tfAccNo);

// System.out.println(deposit_tfAmt);

if(close_tfAccNo != null)

System.out.println ("i m in closetf_Name and flag =


"+close_tfAccNo);

// close_tfName.setEditable(false);

System.out.println(" @@@@
"+textField.getName().toString());

try

Connection con = ConnectionClass.getConnection();

System.out.println ("Conn create ");

Statement stmt = con.createStatement();


String accno = close_tfAccNo.getText();

System.out.println (accno);

ResultSet rs = stmt.executeQuery("SELECT
Name,amount FROM banktable where accountNo='"+accno+"'");

close_tfName.setText("");

close_tfAmt.setText("");

if(rs.next())

String name = rs.getString("Name");

System.out.println (name);

close_tfName.setText(name);

System.out.println
(rs.getInt("amount"));

int amount = rs.getInt("amount");

close_tfAmt.setText(Integer.toString(amount));

ConnectionClass.closed();

catch(Exception ex)

System.out.println
("-------------------------------"+ex);

ex.printStackTrace();
}

finally

try{ConnectionClass.closed();}

catch(Exception es){es.printStackTrace();}

// flag2 false;

if(deposit_tfAccNo!=null)

try

System.out.println ("I m in deposite");

Connection con = ConnectionClass.getConnection();

System.out.println ("Conn create ");

Statement stmt = con.createStatement();

String accno = deposit_tfAccNo.getText();

System.out.println (accno);

ResultSet rs = stmt.executeQuery("SELECT
Name,amount FROM banktable where accountNo='"+accno+"'");

deposit_tfName.setText("");

deposit_tfAmt.setText("");

deposit_tfBal.setText("");
if(rs.next())

String name = rs.getString("Name");

System.out.println (name);

deposit_tfName.setText(name);

System.out.println
(rs.getInt("amount"));

int amount = rs.getInt("amount");

deposit_tfBal.setText(Integer.toString(amount));

ConnectionClass.closed();

catch(Exception ex)

System.out.println
("-------------------------------"+ex);

ex.printStackTrace();

finally

try{ConnectionClass.closed();}

catch(Exception es){es.printStackTrace();}

}
}

if(withdrawAccount != null)

try

System.out.println ("I m in withdraw");

Connection con = ConnectionClass.getConnection();

System.out.println ("Conn create ");

Statement stmt = con.createStatement();

String accno = withdraw_tfAccNo.getText();

System.out.println (accno);

ResultSet rs = stmt.executeQuery("SELECT
Name,amount FROM banktable where accountNo='"+accno+"'");

withdraw_tfName.setText("");

withdraw_tfBal.setText("");

withdraw_tfAmt.setText("");

if(rs.next())

String name = rs.getString("Name");

System.out.println (name);

withdraw_tfName.setText(name);
System.out.println
(rs.getInt("amount"));

int amount = rs.getInt("amount");

withdraw_tfBal.setText(Integer.toString(amount));

ConnectionClass.closed();

catch(Exception ex)

System.out.println
("-------------------------------"+ex);

ex.printStackTrace();

finally

try{ConnectionClass.closed();}

catch(Exception es){es.printStackTrace();}

}
}

public static void main(String[] args)

new BankSimulator();

class ConnectionClass

static Connection con =null;

static

try

Class.forName("com.mysql.jdbc.Driver");

catch(Exception e)
{

e.printStackTrace();

public static Connection getConnection()

try

String url="jdbc:mysql://localhost:3306/bank";

con=DriverManager.getConnection(url,"root","root");

System.out.println("connection estbalish");

return con;

catch(Exception e)

System.out.println ("I am in -- ConnectionClass/getConnection()/catch ");

e.printStackTrace();

return con;

public static void closed() throws SQLException

{
con.close();

You might also like