Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //import java stuff
- import java.awt.FlowLayout;
- import java.awt.event.ActionListener;
- import java.awt.event.ActionEvent;
- import javax.swing.JFrame;
- import javax.swing.JButton;
- import javax.swing.JTextField;
- import javax.swing.JLabel;
- import javax.swing.JSpinner;
- import javax.swing.JComboBox;
- import javax.swing.SpinnerNumberModel;
- import java.awt.Color;
- public class payrollFrame extends JFrame
- {
- //declares labels
- private JLabel nameLabel;
- private JLabel hoursLabel;
- private JLabel payrateLabel;
- private JLabel dependentsLabel;
- private JLabel healthLabel;
- private JLabel grossLabel;
- private JLabel fedLabel;
- private JLabel premiumLabel;
- private JLabel ficaLabel;
- private JLabel netLabel;
- //declares textfields and combobox
- private JTextField name;
- private JTextField payrate;
- private JComboBox healthPlan;
- private JTextField grossPay;
- private JTextField fedTax;
- private JTextField healthPrem;
- private JTextField fica;
- private JTextField netPay;
- //declares spinners
- private JSpinner dependentSpinner;
- private SpinnerNumberModel dependentsNumModel;
- private JSpinner.NumberEditor dependentsNumEditor;
- private JSpinner hoursSpinner;
- private SpinnerNumberModel hoursNumModel;
- private JSpinner.NumberEditor hoursNumEditor;
- //declares buttons
- private JButton calcButton;
- private JButton clearButton;
- private JButton exitbutton;
- //declares strings, ints, doubles
- private static final String[] yesNo = {"Choose","Yes", "No"};//string with choices for combo box
- private String nameString="";
- private String hoursString="";
- private String rateString="";
- private String dependentsString="";
- private String grossString="";
- private String fedString="";
- private String healthString="";
- private String ficaString="";
- private String netString="";
- private final String noFedString="0.00";
- private final String noPremNum="0.00";
- private int hoursWorked;
- private double rateNum;
- private int numDependents;
- private double grossMoney;
- private double fedNum;
- private double premiumNum;
- private int premiumSelect;
- private double ficaNum;
- private int leng=10;
- private calcOps calcMachine;
- public payrollFrame()
- {
- super("Payroll Program");
- setLayout(new FlowLayout());
- //labels and textfields, spinners, combo box
- //name
- nameLabel = new JLabel("Name ");
- add(nameLabel);
- name = new JTextField(20);
- add(name);
- //hours
- hoursLabel = new JLabel("Hours ");
- add(hoursLabel);
- hoursNumModel = new SpinnerNumberModel(0,0,168,8);//spinner starts 0, min 0, max 168, step 8
- hoursSpinner = new JSpinner(hoursNumModel);
- add(hoursSpinner);
- hoursNumEditor = new JSpinner.NumberEditor(hoursSpinner,"######");
- hoursSpinner.setEditor(hoursNumEditor);
- //payrate
- payrateLabel = new JLabel("Payrate ");
- add(payrateLabel);
- payrate = new JTextField(20);
- add(payrate);
- //dependents
- dependentsLabel = new JLabel("Dependents ");//label
- add(dependentsLabel);
- dependentsNumModel = new SpinnerNumberModel(0,0,9,1);//spinner starts 0, min 0, max 9, step 1
- dependentSpinner = new JSpinner(dependentsNumModel);
- add(dependentSpinner);
- dependentsNumEditor = new JSpinner.NumberEditor(dependentSpinner,"######");
- dependentSpinner.setEditor(dependentsNumEditor);
- //healthplan
- healthLabel = new JLabel("Health Plan ");
- add(healthLabel);
- healthPlan = new JComboBox(yesNo);
- add(healthPlan);
- healthPlan.setMaximumRowCount(3);
- //healthPlan.addItemListener();//add listener thingy stuff
- //gross pay
- grossLabel = new JLabel("Gross Pay ");
- add(grossLabel);
- grossPay = new JTextField(20);
- grossPay.setEnabled(false);//users can't edit field
- add(grossPay);
- //fed tax
- fedLabel = new JLabel("Fed Tax ");
- add(fedLabel);
- fedTax = new JTextField(20);
- fedTax.setEnabled(false);//users can't edit field
- add(fedTax);
- //health premium
- premiumLabel = new JLabel("Health Prem.");
- add(premiumLabel);
- healthPrem = new JTextField(20);
- healthPrem.setEnabled(false);//users can't edit field
- add(healthPrem);
- //fica
- ficaLabel = new JLabel("Fica ");
- add(ficaLabel);
- fica = new JTextField(20);
- fica.setEnabled(false);//users can't edit field
- add(fica);
- //net pay
- netLabel = new JLabel("Net Pay ");
- add(netLabel);
- netPay = new JTextField(20);
- netPay.setEnabled(false);//users can't edit field
- add(netPay);
- //buttons
- calcButton = new JButton("Calculate");
- add(calcButton);
- clearButton = new JButton("Clear");
- add(clearButton);
- exitbutton = new JButton("Exit");
- add(exitbutton);
- //handler
- buttonhandler myhandler = new buttonhandler();
- calcButton.addActionListener(myhandler);
- clearButton.addActionListener(myhandler);
- exitbutton.addActionListener(myhandler);
- calcMachine = new calcOps();
- }
- private class buttonhandler implements ActionListener
- {
- public void actionPerformed(ActionEvent event)
- {
- if(event.getSource() == calcButton)
- {
- //gross pay
- hoursWorked = hoursNumModel.getNumber().intValue();//gets hours from spinner
- if(hoursWorked<0)//checks if hours are negative
- hoursWorked=0;
- if(hoursWorked>168)//checks if hours over top number of hours in a week
- hoursWorked=168;
- rateString=payrate.getText();//gets payrate
- leng=rateString.length();
- if(leng==0)//checks if payrate is 0 or left empty
- rateNum=0;
- else
- rateNum=Double.parseDouble(rateString);//parses payrate to double
- if(rateNum<0)//checks if payrate is negative
- rateNum=0;
- grossString=calcOps.findGross(hoursWorked,rateNum);//finds gross pay
- grossMoney=Double.parseDouble(grossString);//parses gross to double
- grossPay.setText(grossString);//prints gross pay
- //fed tax
- if(grossMoney>300)//checks if gross is over 300
- {
- fedString=calcOps.findFedTax(grossMoney);//gets the federal tax
- fedTax.setText(fedString);//sets federal tax in federal tax field
- fedNum=Double.parseDouble(fedString);//parses fed tax to double
- }
- else//if gross not over 300
- {
- fedTax.setText(noFedString);//prints out 0 as fed tax
- fedNum=0.00;//fed tax set to 0
- }
- //health plan and such with dependents
- numDependents=dependentsNumModel.getNumber().intValue();//gets number from spinner
- premiumSelect=healthPlan.getSelectedIndex();//gets choice of health plan
- if(premiumSelect==1)//checks if selection is yes
- {
- healthString=calcOps.getHealthPrem(numDependents);//uses num of depends to calculate health prem
- healthPrem.setText(healthString);
- premiumNum=Double.parseDouble(healthString);
- }
- else//if no or left on choose
- {
- healthPrem.setText(noPremNum);//premium set to 0
- premiumNum=0.00;//amount for health premium set to 0
- }
- //fica
- ficaString=calcOps.getFica(grossMoney);//uses gross to calculate fica
- fica.setText(ficaString);
- ficaNum=Double.parseDouble(ficaString);
- //net pay
- netString=calcOps.getNetPay(grossMoney, fedNum, premiumNum, ficaNum);//uses gross, fed tax, fica, health prem to calc net pay
- netPay.setText(netString);
- }
- else if(event.getSource() == clearButton)//clears all fields, resets spinners and combobox
- {
- name.setText("");//clears all fields and resets spinners and combobox
- payrate.setText("");
- grossPay.setText("");
- fedTax.setText("");
- healthPrem.setText("");
- fica.setText("");
- netPay.setText("");
- hoursSpinner.setValue(0);//set to 0
- dependentSpinner.setValue(0);//set to 0
- healthPlan.setSelectedIndex(0);//sets combobox to choose
- }
- else if(event.getSource() == exitbutton)//closes java applet
- {
- System.exit(0);
- }
- else
- System.out.println("Unknown error");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement