Advertisement
darkhelmet125

payrollFrame.java

Sep 27th, 2012
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.36 KB | None | 0 0
  1. //import java stuff
  2. import java.awt.FlowLayout;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.ActionEvent;
  5. import javax.swing.JFrame;
  6. import javax.swing.JButton;
  7. import javax.swing.JTextField;
  8. import javax.swing.JLabel;
  9. import javax.swing.JSpinner;
  10. import javax.swing.JComboBox;
  11. import javax.swing.SpinnerNumberModel;
  12. import java.awt.Color;
  13.  
  14. public class payrollFrame extends JFrame
  15. {
  16.     //declares labels
  17.     private JLabel nameLabel;
  18.     private JLabel hoursLabel;
  19.     private JLabel payrateLabel;
  20.     private JLabel dependentsLabel;
  21.     private JLabel healthLabel;
  22.     private JLabel grossLabel;
  23.     private JLabel fedLabel;
  24.     private JLabel premiumLabel;
  25.     private JLabel ficaLabel;
  26.     private JLabel netLabel;
  27.     //declares textfields and combobox
  28.     private JTextField name;
  29.     private JTextField payrate;
  30.     private JComboBox healthPlan;
  31.     private JTextField grossPay;
  32.     private JTextField fedTax;
  33.     private JTextField healthPrem;
  34.     private JTextField fica;
  35.     private JTextField netPay;
  36.     //declares spinners
  37.     private JSpinner dependentSpinner;
  38.     private SpinnerNumberModel dependentsNumModel;
  39.     private JSpinner.NumberEditor dependentsNumEditor;
  40.     private JSpinner hoursSpinner;
  41.     private SpinnerNumberModel hoursNumModel;
  42.     private JSpinner.NumberEditor hoursNumEditor;
  43.     //declares buttons
  44.     private JButton calcButton;
  45.     private JButton clearButton;
  46.     private JButton exitbutton;
  47.     //declares strings, ints, doubles
  48.     private static final String[] yesNo = {"Choose","Yes", "No"};//string with choices for combo box
  49.     private String nameString="";
  50.     private String hoursString="";
  51.     private String rateString="";
  52.     private String dependentsString="";
  53.     private String grossString="";
  54.     private String fedString="";
  55.     private String healthString="";
  56.     private String ficaString="";
  57.     private String netString="";
  58.     private final String noFedString="0.00";
  59.     private final String noPremNum="0.00";
  60.     private int hoursWorked;
  61.     private double rateNum;
  62.     private int numDependents;
  63.     private double grossMoney;
  64.     private double fedNum;
  65.     private double premiumNum;
  66.     private int premiumSelect;
  67.     private double ficaNum;
  68.     private int leng=10;
  69.     private calcOps calcMachine;
  70.    
  71.     public payrollFrame()
  72.     {
  73.         super("Payroll Program");
  74.         setLayout(new FlowLayout());
  75.         //labels and textfields, spinners, combo box
  76.         //name
  77.         nameLabel = new JLabel("Name    ");
  78.         add(nameLabel);
  79.         name = new JTextField(20);
  80.         add(name);
  81.         //hours
  82.         hoursLabel = new JLabel("Hours                                                  ");
  83.         add(hoursLabel);
  84.         hoursNumModel = new SpinnerNumberModel(0,0,168,8);//spinner starts 0, min 0, max 168, step 8
  85.         hoursSpinner = new JSpinner(hoursNumModel);
  86.         add(hoursSpinner);
  87.         hoursNumEditor = new JSpinner.NumberEditor(hoursSpinner,"######");
  88.         hoursSpinner.setEditor(hoursNumEditor);
  89.         //payrate
  90.         payrateLabel = new JLabel("Payrate  ");
  91.         add(payrateLabel);
  92.         payrate = new JTextField(20);
  93.         add(payrate);
  94.         //dependents
  95.         dependentsLabel = new JLabel("Dependents                                                ");//label
  96.         add(dependentsLabel);
  97.         dependentsNumModel = new SpinnerNumberModel(0,0,9,1);//spinner starts 0, min 0, max 9, step 1
  98.         dependentSpinner = new JSpinner(dependentsNumModel);
  99.         add(dependentSpinner);
  100.         dependentsNumEditor = new JSpinner.NumberEditor(dependentSpinner,"######");
  101.         dependentSpinner.setEditor(dependentsNumEditor);
  102.         //healthplan
  103.         healthLabel = new JLabel("Health Plan                                      ");
  104.         add(healthLabel);
  105.         healthPlan = new JComboBox(yesNo);
  106.         add(healthPlan);
  107.         healthPlan.setMaximumRowCount(3);
  108.         //healthPlan.addItemListener();//add listener thingy stuff
  109.         //gross pay
  110.         grossLabel = new JLabel("Gross Pay  ");
  111.         add(grossLabel);
  112.         grossPay = new JTextField(20);
  113.         grossPay.setEnabled(false);//users can't edit field
  114.         add(grossPay);
  115.         //fed tax
  116.         fedLabel = new JLabel("Fed Tax      ");
  117.         add(fedLabel);
  118.         fedTax = new JTextField(20);
  119.         fedTax.setEnabled(false);//users can't edit field
  120.         add(fedTax);
  121.         //health premium
  122.         premiumLabel = new JLabel("Health Prem.");
  123.         add(premiumLabel);
  124.         healthPrem = new JTextField(20);
  125.         healthPrem.setEnabled(false);//users can't edit field
  126.         add(healthPrem);
  127.         //fica
  128.         ficaLabel = new JLabel("Fica            ");
  129.         add(ficaLabel);
  130.         fica = new JTextField(20);
  131.         fica.setEnabled(false);//users can't edit field
  132.         add(fica);
  133.         //net pay
  134.         netLabel = new JLabel("Net Pay      ");
  135.         add(netLabel);
  136.         netPay = new JTextField(20);
  137.         netPay.setEnabled(false);//users can't edit field
  138.         add(netPay);
  139.         //buttons
  140.         calcButton = new JButton("Calculate");
  141.         add(calcButton);
  142.         clearButton = new JButton("Clear");
  143.         add(clearButton);
  144.         exitbutton = new JButton("Exit");
  145.         add(exitbutton);
  146.         //handler
  147.         buttonhandler myhandler = new buttonhandler();
  148.         calcButton.addActionListener(myhandler);
  149.         clearButton.addActionListener(myhandler);
  150.         exitbutton.addActionListener(myhandler);
  151.         calcMachine = new calcOps();
  152.     }
  153.    
  154.     private class buttonhandler implements ActionListener
  155.     {
  156.         public void actionPerformed(ActionEvent event)
  157.         {
  158.             if(event.getSource() == calcButton)
  159.             {
  160.                 //gross pay
  161.                 hoursWorked = hoursNumModel.getNumber().intValue();//gets hours from spinner
  162.                 if(hoursWorked<0)//checks if hours are negative
  163.                     hoursWorked=0;
  164.                 if(hoursWorked>168)//checks if hours over top number of hours in a week
  165.                     hoursWorked=168;
  166.                 rateString=payrate.getText();//gets payrate
  167.                 leng=rateString.length();
  168.                 if(leng==0)//checks if payrate is 0 or left empty
  169.                     rateNum=0;
  170.                 else
  171.                     rateNum=Double.parseDouble(rateString);//parses payrate to double
  172.                 if(rateNum<0)//checks if payrate is negative
  173.                     rateNum=0;
  174.                 grossString=calcOps.findGross(hoursWorked,rateNum);//finds gross pay
  175.                 grossMoney=Double.parseDouble(grossString);//parses gross to double
  176.                 grossPay.setText(grossString);//prints gross pay
  177.                 //fed tax
  178.                 if(grossMoney>300)//checks if gross is over 300
  179.                 {
  180.                     fedString=calcOps.findFedTax(grossMoney);//gets the federal tax
  181.                     fedTax.setText(fedString);//sets federal tax in federal tax field
  182.                     fedNum=Double.parseDouble(fedString);//parses fed tax to double
  183.                 }
  184.                 else//if gross not over 300
  185.                 {
  186.                     fedTax.setText(noFedString);//prints out 0 as fed tax
  187.                     fedNum=0.00;//fed tax set to 0
  188.                 }
  189.                 //health plan and such with dependents
  190.                 numDependents=dependentsNumModel.getNumber().intValue();//gets number from spinner
  191.                 premiumSelect=healthPlan.getSelectedIndex();//gets choice of health plan
  192.                 if(premiumSelect==1)//checks if selection is yes
  193.                 {
  194.                     healthString=calcOps.getHealthPrem(numDependents);//uses num of depends to calculate health prem
  195.                     healthPrem.setText(healthString);
  196.                     premiumNum=Double.parseDouble(healthString);
  197.                 }
  198.                 else//if no or left on choose
  199.                 {
  200.                     healthPrem.setText(noPremNum);//premium set to 0
  201.                     premiumNum=0.00;//amount for health premium set to 0
  202.                 }
  203.                 //fica
  204.                 ficaString=calcOps.getFica(grossMoney);//uses gross to calculate fica
  205.                 fica.setText(ficaString);
  206.                 ficaNum=Double.parseDouble(ficaString);
  207.                 //net pay
  208.                 netString=calcOps.getNetPay(grossMoney, fedNum, premiumNum, ficaNum);//uses gross, fed tax, fica, health prem to calc net pay
  209.                 netPay.setText(netString);
  210.             }
  211.             else if(event.getSource() == clearButton)//clears all fields, resets spinners and combobox
  212.             {
  213.                 name.setText("");//clears all fields and resets spinners and combobox
  214.                 payrate.setText("");
  215.                 grossPay.setText("");
  216.                 fedTax.setText("");
  217.                 healthPrem.setText("");
  218.                 fica.setText("");
  219.                 netPay.setText("");
  220.                 hoursSpinner.setValue(0);//set to 0
  221.                 dependentSpinner.setValue(0);//set to 0
  222.                 healthPlan.setSelectedIndex(0);//sets combobox to choose
  223.             }
  224.             else if(event.getSource() == exitbutton)//closes java applet
  225.             {
  226.                 System.exit(0);
  227.             }
  228.             else
  229.                 System.out.println("Unknown error");
  230.         }
  231.     }
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement