Changes

Additions
Line 60: Line 60:  
       add(six);
 
       add(six);
 
       setBackground(Color.blue);
 
       setBackground(Color.blue);
       setPreferredSize(new Dimension(350, 100));
+
       setPreferredSize(new Dimension(400, 100));
 
   }
 
   }
 
   //*****************************************************************
 
   //*****************************************************************
Line 106: Line 106:     
package program04;
 
package program04;
 
+
import java.io.Serializable;
 
import java.text.NumberFormat;
 
import java.text.NumberFormat;
   −
public class Transaction
+
public class Transaction implements Serializable
 
{
 
{
 
     private int transID;
 
     private int transID;
     private int transNumber; //Current value of transCount
+
     private int transNumber;
 
     private float transAmt;
 
     private float transAmt;
 
     private String transType;
 
     private String transType;
   
+
 
 
     public int getTransID()
 
     public int getTransID()
 
     {
 
     {
         return transID; //1 = check, 2 = deposit 3 = service charge
+
         return transID;
 
     }
 
     }
 
     public int getTransNumber()
 
     public int getTransNumber()
Line 138: Line 138:  
         NumberFormat fmt = NumberFormat.getCurrencyInstance();
 
         NumberFormat fmt = NumberFormat.getCurrencyInstance();
 
         String description;
 
         String description;
       
+
 
 
         if(transID == 1)
 
         if(transID == 1)
        {
   
             transType = "Check";
 
             transType = "Check";
        }
   
         else if(transID == 2)
 
         else if(transID == 2)
        {
   
             transType = "Deposit";
 
             transType = "Deposit";
        }
   
         else //(transID == 3)
 
         else //(transID == 3)
        {
   
             transType = "S.Ch.";
 
             transType = "S.Ch.";
        }
      
         description = transNumber + "\t\t" + transType + "\t\t" + fmt.format(transAmt);
 
         description = transNumber + "\t\t" + transType + "\t\t" + fmt.format(transAmt);
Line 163: Line 157:  
//  Account Class      Author: Derek Elder
 
//  Account Class      Author: Derek Elder
 
//********************************************************************
 
//********************************************************************
 +
 
package program04;
 
package program04;
 +
import java.io.Serializable;
   −
public class Account
+
public class Account implements Serializable
 
{
 
{
   private String name;
+
    protected String name;
  private double balance;
+
    protected float balance;
 
+
    
  public String getName()
+
    public Account(String initialName, float initialBalance)
  {
+
    {
      return name;
+
        name = initialName;
  }
+
        balance = initialBalance;
  public double getBalance()
+
    }
  {
+
    public String getName()
      return balance;
+
    {
  }
+
        return name;
 +
    }
 +
    public float getBalance()
 +
    {
 +
        return balance;
 +
    }
 +
    public float setBalance(float currentBalance, int tCode)
 +
    {
 +
        if(tCode == 1 || tCode == 0)
 +
            balance -= currentBalance;
 +
        else //if(tCode == 2)
 +
            balance += currentBalance;
 +
        return balance;
 +
    }
 
}
 
}
 
</pre>
 
</pre>
Line 190: Line 199:  
import java.text.NumberFormat;
 
import java.text.NumberFormat;
   −
public class CheckingAccount
+
public class CheckingAccount extends Account
 
{
 
{
    private float balance;
+
     private float totalServiceCharge;
     private float totalServiceCharge; //Changed from double
   
     private int transCount;
 
     private int transCount;
 
     private Transaction[] tList;
 
     private Transaction[] tList;
Line 201: Line 209:  
         if(transCount == tList.length)
 
         if(transCount == tList.length)
 
             increaseArray();
 
             increaseArray();
           
+
           
 
         tList[transCount] = new Transaction(transID, transNumber, transAmt);
 
         tList[transCount] = new Transaction(transID, transNumber, transAmt);
 
         transCount++;
 
         transCount++;
Line 215: Line 223:  
             }
 
             }
 
         }
 
         }
 +
    }
 +
    public Transaction getSingleTrans(int i)
 +
    {
 +
        return tList[i];
 
     }
 
     }
 
     public int getTransCount()
 
     public int getTransCount()
Line 220: Line 232:  
         return transCount;
 
         return transCount;
 
     }
 
     }
     public float getBalance()
+
     public void setTransCount(int tCount)
 
     {
 
     {
         return balance;
+
         transCount = tCount;
    }
  −
    public float setBalance(float currentBalance, int tCode)
  −
    {
  −
        if(tCode == 1 || tCode == 0)
  −
            balance -= currentBalance;
  −
        else //if(tCode == 2)
  −
            balance += currentBalance;
  −
        return balance;
   
     }
 
     }
 
     public float getServiceCharge()
 
     public float getServiceCharge()
Line 241: Line 245:  
         return totalServiceCharge;
 
         return totalServiceCharge;
 
     }
 
     }
     public CheckingAccount() //Needed?
+
     public CheckingAccount()
 
     {
 
     {
         balance = 0;
+
         //balance = 0;
 +
        super("", 0.0f);
 
         totalServiceCharge = 0;
 
         totalServiceCharge = 0;
 
         tList = new Transaction[10];
 
         tList = new Transaction[10];
 
         transCount = 0;
 
         transCount = 0;
 
     }
 
     }
     public CheckingAccount(float currentBalance, float currentServiceCharge)
+
     public CheckingAccount(String currentName, float currentBalance, float currentServiceCharge)
 
     {
 
     {
         balance = currentBalance;
+
         //balance = currentBalance;
 +
        super(currentName, currentBalance);
 
         totalServiceCharge = currentServiceCharge;
 
         totalServiceCharge = currentServiceCharge;
 
         tList = new Transaction[10];
 
         tList = new Transaction[10];
Line 262: Line 268:  
         String report = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
 
         String report = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
 
         report += "My Transaction Status\n\n";
 
         report += "My Transaction Status\n\n";
 +
        report += "Name: " + name + "\n";
 
         report += "Balance: " + balance + "\n";
 
         report += "Balance: " + balance + "\n";
 
         report += "Total Service Charge: " + fmt.format(totalServiceCharge) + "\n";
 
         report += "Total Service Charge: " + fmt.format(totalServiceCharge) + "\n";
Line 268: Line 275:  
         report += "ID\t\tType\t\tAmount\n";
 
         report += "ID\t\tType\t\tAmount\n";
 
         report += "---------------------------------------\n";
 
         report += "---------------------------------------\n";
       
+
       
 
         for(i = 0; i < transCount; i++)
 
         for(i = 0; i < transCount; i++)
 
               report += tList[i] + "\n";
 
               report += tList[i] + "\n";
Line 295: Line 302:  
import java.text.DecimalFormat;
 
import java.text.DecimalFormat;
 
import javax.swing.JOptionPane;
 
import javax.swing.JOptionPane;
import javax.swing.JFrame;
+
import javax.swing.*; //JFrame
 +
import java.io.*;
    
public class Main
 
public class Main
 
{
 
{
     public static JFrame frame;
+
     //public static JFrame frame;
 +
    public static JFrameL frame;
 
     public static CheckingAccount account = null;
 
     public static CheckingAccount account = null;
 
     public static boolean below500 = false;
 
     public static boolean below500 = false;
     public static String filename = "C:\\student\\accounts.dat";
+
     public static String filename = "C:\\accounts.txt";
 
+
 
 
     public static void main(String[] args)
 
     public static void main(String[] args)
 
     {
 
     {
         frame = new JFrame("Checking Account Actions");
+
         frame = new JFrameL("Checking Account Actions");
 
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
         GUI panel = new GUI();
 
         GUI panel = new GUI();
Line 316: Line 325:  
     {
 
     {
 
         int tCode = 0;
 
         int tCode = 0;
String stringBalance, stringTCode, stringTransAmt, message;
+
        String stringBalance, stringTCode, stringTransAmt, message;
 +
        String name;
 
         float balance, transAmt, charge, balanceBeforeCharge;
 
         float balance, transAmt, charge, balanceBeforeCharge;
 
         //boolean done = false;
 
         //boolean done = false;
Line 323: Line 333:  
         if(account == null)
 
         if(account == null)
 
         {
 
         {
 +
            name = JOptionPane.showInputDialog("Enter your name: ");
 
             stringBalance = JOptionPane.showInputDialog("Enter your initial balance: ");
 
             stringBalance = JOptionPane.showInputDialog("Enter your initial balance: ");
 
             balance = Float.parseFloat(stringBalance);
 
             balance = Float.parseFloat(stringBalance);
 
             //CheckingAccount account = new CheckingAccount();  //Old version
 
             //CheckingAccount account = new CheckingAccount();  //Old version
             account = new CheckingAccount(balance, charge);
+
             account = new CheckingAccount(name, balance, charge);
 
         }
 
         }
   Line 347: Line 358:  
                         charge = 10.15f; //Cost of Check + Below $0 charge
 
                         charge = 10.15f; //Cost of Check + Below $0 charge
 
                         account.setServiceCharge(charge);
 
                         account.setServiceCharge(charge);
                         message = "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
+
                         message = account.getName() + "'s account" + "\n" +
 +
                                "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
Line 361: Line 373:  
                         charge = 5.15f; //Cost of Check + Below $500 charge
 
                         charge = 5.15f; //Cost of Check + Below $500 charge
 
                         account.setServiceCharge(charge);
 
                         account.setServiceCharge(charge);
                         message = "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
+
                         message = account.getName() + "'s account" + "\n" +
 +
                                "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
Line 380: Line 393:  
                     if(account.getBalance() < 50.00)
 
                     if(account.getBalance() < 50.00)
 
                     {
 
                     {
                         message = "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
+
                         message = account.getName() + "'s account" + "\n" +
 +
                            "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
 
                             "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                             "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                             "Service charge : Check -- charge $0.15" + "\n" +
 
                             "Service charge : Check -- charge $0.15" + "\n" +
Line 391: Line 405:  
                     else
 
                     else
 
                     {
 
                     {
                         message = "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
+
                         message = account.getName() + "'s account" + "\n" +
 +
                                "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
Line 407: Line 422:  
                     if(account.getBalance() < 50.00)
 
                     if(account.getBalance() < 50.00)
 
                     {
 
                     {
                         message = "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
+
                         message = account.getName() + "'s account" + "\n" +
 +
                                "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
Line 417: Line 433:  
                     else
 
                     else
 
                     {
 
                     {
                         message = "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
+
                         message = account.getName() + "'s account" + "\n" +
 +
                                "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
 
                                 "Service charge : Check -- charge $0.15" + "\n" +
Line 437: Line 454:  
                 if(account.getBalance() <= 50.00)
 
                 if(account.getBalance() <= 50.00)
 
                 {
 
                 {
                     message = "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
+
                     message = account.getName() + "'s account" + "\n" +
 +
                            "Transaction : Check in the amount of $" + fmt.format(transAmt) + "\n" +
 
                             "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                             "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                             "Service charge : Deposit -- charge $0.10" + "\n" +
 
                             "Service charge : Deposit -- charge $0.10" + "\n" +
Line 447: Line 465:  
                 else
 
                 else
 
                 {
 
                 {
                     message = "Transaction : Deposit in the amount of $" + fmt.format(transAmt) + "\n" +
+
                     message = account.getName() + "'s account" + "\n" +
 +
                            "Transaction : Deposit in the amount of $" + fmt.format(transAmt) + "\n" +
 
                             "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                             "Current Balance : $" + fmt.format(account.getBalance()) + "\n" +
 
                             "Service charge : Deposit -- charge $0.10" + "\n" +
 
                             "Service charge : Deposit -- charge $0.10" + "\n" +
Line 467: Line 486:  
                 JOptionPane.showMessageDialog(null, message);
 
                 JOptionPane.showMessageDialog(null, message);
 
                 //done = true;
 
                 //done = true;
                 System.exit(0); //Modify to window listener?
+
                 System.exit(0);
 
             }
 
             }
 
         }
 
         }
Line 478: Line 497:  
     public static void listChecks()
 
     public static void listChecks()
 
     {
 
     {
 +
        System.out.println("\nListing all Checks for " + account.getName() + ":");
 +
        System.out.println("ID\t\tType\t\tAmount");
 +
        System.out.println("---------------------------------------");
 
         account.getTrans(1);
 
         account.getTrans(1);
 
     }
 
     }
 
     public static void listDeposits()
 
     public static void listDeposits()
 
     {
 
     {
 +
        System.out.println("\nListing all Deposits for " + account.getName() + ":");
 +
        System.out.println("ID\t\tType\t\tAmount");
 +
        System.out.println("---------------------------------------");
 
         account.getTrans(2);
 
         account.getTrans(2);
 +
    }
 +
    public static void readFromFile()
 +
    {
 +
        chooseFile(1);
 +
 +
        try
 +
        {
 +
            FileInputStream fis = new FileInputStream(filename);
 +
            ObjectInputStream in = new ObjectInputStream(fis);
 +
         
 +
            account = (CheckingAccount)in.readObject();
 +
            in.close();
 +
        }
 +
        catch(ClassNotFoundException e)
 +
        {
 +
            System.out.println(e);
 +
        }
 +
        catch(IOException e)
 +
        {
 +
            System.out.println(e);
 +
        }
 +
    }
 +
    public static void writeToFile()
 +
    {
 +
        chooseFile(2);
 +
 +
        try
 +
        {
 +
            FileOutputStream fos = new FileOutputStream(filename);
 +
            ObjectOutputStream out = new ObjectOutputStream(fos);
 +
 +
            out.writeObject(account);
 +
            out.close();
 +
        }
 +
        catch(IOException e)
 +
        {
 +
            System.out.println(e);
 +
        }
 +
    }
 +
    public static void chooseFile(int ioOption)
 +
    {
 +
        int status, confirm;
 +
        String  message = "Would you like to use the current default file: \n" + filename;
 +
 +
        confirm = JOptionPane.showConfirmDialog (null, message);
 +
 +
        if(confirm == JOptionPane.YES_OPTION)
 +
        {
 +
            return;
 +
        }
 +
 +
        JFileChooser chooser = new JFileChooser();
 +
     
 +
        if(ioOption == 1)
 +
        {
 +
            status = chooser.showOpenDialog(null);
 +
        }
 +
        else
 +
        {
 +
            status = chooser.showSaveDialog(null);
 +
        }
 +
 +
        if(status == JFileChooser.APPROVE_OPTION)
 +
        {
 +
            File file = chooser.getSelectedFile();
 +
            filename = file.getPath();
 +
        }
 
     }
 
     }
 
}
 
}
 
</pre>
 
</pre>
==Code from Class==
+
==JFrameL.java==
 
<pre>
 
<pre>
  public static void readElements()
+
//*******************************************************************
  {  
+
// JFrameL - WindowListener Options      Author: Derek Elder
        chooseFile(1);
+
//********************************************************************
try
+
 
{
+
package program04;
FileInputStream fis = new
+
import javax.swing.*;
    FileInputStream(filename);
+
import java.awt.*;
ObjectInputStream in = new
+
import java.awt.event.*;
      ObjectInputStream(fis);
+
import java.io.*;
                        Integer eCountObj = (Integer)in.readObject();
  −
                        int eCount = eCountObj.intValue();
  −
                        System.out.println("count of objects in file = "+ eCount);
  −
                        for (int i = 0; i < eCount; i++)
  −
                        {
  −
                                System.out.println("reading object "+ i);
  −
eList[i] = (ChemicalElement)in.readObject();
  −
                        }
  −
in.close();
  −
                        ChemicalElement.setNumOfElements(eCount);
  −
}
  −
catch(ClassNotFoundException e)
  −
                {
  −
                    System.out.println(e);
  −
                }
     −
                catch (IOException e)  
+
public class JFrameL extends JFrame implements WindowListener
                {  
+
{
                    System.out.println(e);
+
    public JFrameL(String title)
                }
+
    {
  }
+
        super(title);
  public static void writeElements()  
+
        addWindowListener(this);
  {
+
    }
         chooseFile(2);
+
    public void windowClosing(WindowEvent e)
      try
+
    {
{
+
         int fileYea;
FileOutputStream fos = new
+
        String selection;
    FileOutputStream(filename);
+
        selection = JOptionPane.showInputDialog("Save the account to a file? " +
ObjectOutputStream out = new
+
                "(Enter 1 to save)");
      ObjectOutputStream(fos);
+
        fileYea = Integer.parseInt(selection);
                        int eCount = ChemicalElement.getNumOfElements();
+
        if(fileYea == 1)
                        Integer eCountObj = new Integer(eCount);
+
        {
                        out.writeObject(eCountObj);
+
            Main.writeToFile();
                        for (int i = 0; i < eCount; i++)
+
        }
                        {
+
        this.setVisible(false);
                                System.out.println("writing object "+ i);
+
        System.exit(0);
out.writeObject(eList[i]);
+
    }
                        }
+
    public void windowClosed(WindowEvent e)
                        out.close();
+
    {}
+
    public void windowOpened(WindowEvent e)
}
+
    {}
catch(IOException e)
+
    public void windowIconified(WindowEvent e)
                {  
+
    {}
                    System.out.println(e);
+
    public void windowDeiconified(WindowEvent e)
                }
+
    {}
+
    public void windowActivated(WindowEvent e)
  }
+
    {}
  public static void chooseFile(int ioOption)  
+
    public void windowDeactivated(WindowEvent e)
  {
+
    {}
      int status, confirm;     
+
}
               
  −
      String  message = "Would you like to use the current default file: \n" +
  −
                          filename;
  −
      confirm = JOptionPane.showConfirmDialog (null, message);
  −
      if (confirm == JOptionPane.YES_OPTION)
  −
          return;
  −
      JFileChooser chooser = new JFileChooser();
  −
      if (ioOption == 1)
  −
          status = chooser.showOpenDialog (null);
  −
      else
  −
          status = chooser.showSaveDialog (null);
  −
      if (status == JFileChooser.APPROVE_OPTION)
  −
      {
  −
          File file = chooser.getSelectedFile();
  −
          filename = file.getPath();
  −
      }
  −
  }
   
</pre>
 
</pre>
123

edits