Re: Gui Question



I'm reading through the java sun tutorials but finding it pretty hard
as i'm new to all of this.

My assignment is to develop an interface that will run the Payroll
System application for five classes we have been given. Using a
JComboBox and JTextFields, allow the user to specify the type of
employee they wish to create and specify the data concerning that
employee. Have the output displayed in a JTextArea. I have included the
five classes plus the test class which just outputs the predefined
data.

Ian

Employee Class
_________________________________________________



public abstract class Employee implements MyPanel
{
private String firstName;
private String lastName;
private String socialSecurityNumber;

// three-argument constructor
public Employee( String first, String last, String ssn )
{
firstName = first;
lastName = last;
socialSecurityNumber = ssn;
} // end three-argument Employee constructor

// set first name
public void setFirstName( String first )
{
firstName = first;
} // end method setFirstName

// return first name
public String getFirstName()
{
return firstName;
} // end method getFirstName

// set last name
public void setLastName( String last )
{
lastName = last;
} // end method setLastName

// return last name
public String getLastName()
{
return lastName;
} // end method getLastName

// set social security number
public void setSocialSecurityNumber( String ssn )
{
socialSecurityNumber = ssn; // should validate
} // end method setSocialSecurityNumber

// return social security number
public String getSocialSecurityNumber()
{
return socialSecurityNumber;
} // end method getSocialSecurityNumber

// return String representation of Employee object
public String toString()
{
return String.format( "%s %s\nsocial security number: %s",
getFirstName(), getLastName(), getSocialSecurityNumber() );
} // end method toString

// we do not implement Payable method getPaymentAmount here so
// this class must be declared abstract to avoid a compilation error
} // end abstract class Employee

Salaried Employee
______________________________



public class SalariedEmployee extends Employee
{
private double weeklySalary;

// four-argument constructor
public SalariedEmployee( String first, String last, String ssn,
double salary )
{
super( first, last, ssn ); // pass to Employee constructor
setWeeklySalary( salary ); // validate and store salary
} // end four-argument SalariedEmployee constructor

// set salary
public void setWeeklySalary( double salary )
{
weeklySalary = salary < 0.0 ? 0.0 : salary;
} // end method setWeeklySalary

// return salary
public double getWeeklySalary()
{
return weeklySalary;
} // end method getWeeklySalary

// calculate earnings; implement Payable method that was
// abstract in superclass employee
public double getPaymentAmount()
{
return getWeeklySalary();
} // end method getPaymentAmount

// return String representation of SalariedEmployee object
public String toString()
{
return String.format( "salaried employee: %s\n%s: $%,.2f",
super.toString(), "weekly salary", getWeeklySalary() );
} // end method toString
} // end class SalariedEmployee

Commission Employee
_________________________



public class CommissionEmployee extends Employee
{
private double grossSales; // gross weekly sales
private double commissionRate; // commission percentage

// five-argument constructor
public CommissionEmployee( String first, String last, String ssn,
double sales, double rate )
{
super( first, last, ssn );
setGrossSales( sales );
setCommissionRate( rate );
} // end five-argument CommissionEmployee constructor

// set commission rate
public void setCommissionRate( double rate )
{
commissionRate = ( rate > 0.0 && rate < 1.0 ) ? rate : 0.0;
} // end method setCommissionRate

// return commission rate
public double getCommissionRate()
{
return commissionRate;
} // end method getCommissionRate

// set gross sales amount
public void setGrossSales( double sales )
{
grossSales = ( sales < 0.0 ) ? 0.0 : sales;
} // end method setGrossSales

// return gross sales amount
public double getGrossSales()
{
return grossSales;
} // end method getGrossSales

// calculate earnings; implement interface Payable method that was
// abstract in superclass Employee
public double getPaymentAmount()
{

return getCommissionRate() * getGrossSales();
} // end method getPaymentAmount

// return String representation of CommissionEmployee object


// return String representation of CommissionEmployee object
public String toString()
{
return String.format( "%s: %s\n%s: $%,.2f; %s: %.2f",
"commission employee", super.toString(),
"gross sales", getGrossSales(),
"commission rate", getCommissionRate() );
} // end method toString
} // end class CommissionEmployee


Hourly Employee
_______________________


public class HourlyEmployee extends Employee
{
private double wage; // wage per hour
private double hours; // hours worked for week

// five-argument constructor
public HourlyEmployee( String first, String last, String ssn,
double hourlyWage, double hoursWorked )
{
super( first, last, ssn );
setWage( hourlyWage ); // validate and store hourly wage
setHours( hoursWorked ); // validate and store hours worked
} // end five-argument HourlyEmployee constructor

// set wage
public void setWage( double hourlyWage )
{
wage = ( hourlyWage < 0.0 ) ? 0.0 : hourlyWage;
} // end method setWage

// return wage
public double getWage()
{
return wage;
} // end method getWage

// set hours worked
public void setHours( double hoursWorked )
{
hours = ( ( hoursWorked >= 0.0 ) && ( hoursWorked <= 168.0 ) ) ?
hoursWorked : 0.0;
} // end method setHours

// return hours worked
public double getHours()
{
return hours;
} // end method getHours

// calculate earnings; implement interface Payable method that was
// abstract in superclass Employee
public double getPaymentAmount()
{
if ( getHours() <= 40 ) // no overtime
return getWage() * getHours();
else
return 40 * getWage() + ( getHours() - 40 ) * getWage() * 1.5;
} // end method getPaymentAmount

// return String representation of HourlyEmployee object
public String toString()
{
return String.format( "hourly employee: %s\n%s: $%,.2f; %s:
%,.2f",
super.toString(), "hourly wage", getWage(),
"hours worked", getHours() );
} // end method toString
} // end class HourlyEmployee

BasePlus Commission
__________________


public class BasePlusCommissionEmployee extends CommissionEmployee
{
private double baseSalary; // base salary per week

// six-argument constructor
public BasePlusCommissionEmployee( String first, String last,
String ssn, double sales, double rate, double salary )
{
super( first, last, ssn, sales, rate );
setBaseSalary( salary ); // validate and store base salary
} // end six-argument BasePlusCommissionEmployee constructor

// set base salary
public void setBaseSalary( double salary )
{
baseSalary = ( salary < 0.0 ) ? 0.0 : salary; // non-negative
} // end method setBaseSalary

// return base salary
public double getBaseSalary()
{
return baseSalary;
} // end method getBaseSalary

// calculate earnings; implement interface Payable method that was
// abstract in superclass Employee
public double getPaymentAmount()
{
return getBaseSalary() + super. getPaymentAmount();
} // end method getPaymentAmount

// return String representation of BasePlusCommissionEmployee object
public String toString()
{
return String.format( "%s %s; %s: $%,.2f",
"base-salaried", super.toString(),
"base salary", getBaseSalary() );
} // end method toString
} // end class BasePlusCommissionEmployee

Test Data
______________________

// Tests Payable Interface

public class PayableInterfaceTest
{
public static void main( String args[] )
{
// create subclass objects
SalariedEmployee salariedEmployee =
new SalariedEmployee( "John", "Smith", "111-11-1111", 800.00
);
HourlyEmployee hourlyEmployee =
new HourlyEmployee( "Karen", "Price", "222-22-2222", 16.75, 40
);
CommissionEmployee commissionEmployee =
new CommissionEmployee(
"Sue", "Jones", "333-33-3333", 10000, .06 );
BasePlusCommissionEmployee basePlusCommissionEmployee =
new BasePlusCommissionEmployee(
"Bob", "Lewis", "444-44-4444", 5000, .04, 300 );

System.out.println( "Employees processed individually:\n" );

System.out.printf( "%s\n%s: $%,.2f\n\n",
salariedEmployee, "earned",
salariedEmployee.getPaymentAmount() );
System.out.printf( "%s\n%s: $%,.2f\n\n",
hourlyEmployee, "earned", hourlyEmployee.getPaymentAmount() );
System.out.printf( "%s\n%s: $%,.2f\n\n",
commissionEmployee, "earned",
commissionEmployee.getPaymentAmount() );
System.out.printf( "%s\n%s: $%,.2f\n\n",
basePlusCommissionEmployee,
"earned", basePlusCommissionEmployee.getPaymentAmount() );

// create four-element Employee array
Employee employees[] = new Employee[ 4 ];

// initialize array with Employees
employees[ 0 ] = salariedEmployee;
employees[ 1 ] = hourlyEmployee;
employees[ 2 ] = commissionEmployee;
employees[ 3 ] = basePlusCommissionEmployee;

System.out.println( "Employees processed polymorphically:\n" );

// generically process each element in array employees
for ( Employee currentEmployee : employees )
{
System.out.println( currentEmployee ); // invokes toString

// determine whether element is a BasePlusCommissionEmployee
if ( currentEmployee instanceof BasePlusCommissionEmployee )
{
// downcast Employee reference to
// BasePlusCommissionEmployee reference
BasePlusCommissionEmployee employee =
( BasePlusCommissionEmployee ) currentEmployee;

double oldBaseSalary = employee.getBaseSalary();
employee.setBaseSalary( 1.10 * oldBaseSalary );
System.out.printf(
"new base salary with 10%% increase is: $%,.2f\n",
employee.getBaseSalary() );
} // end if

System.out.printf(
"earned $%,.2f\n\n", currentEmployee.getPaymentAmount() );
} // end for

// get type name of each object in employees array
for ( int j = 0; j < employees.length; j++ )
System.out.printf( "Employee %d is a %s\n", j,
employees[ j ].getClass().getName() );
} // end main
} // end class PayrollSystemTest

.



Relevant Pages

  • Re: inheritance question
    ... the constructor of the Employee class should accept all parameters ... public Employee (DateTime DOB, string Address, string MaritalStatus, ... > private string mMaritalStatus; ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Need VBA Help to Append!
    ... marks to delimit your string and date fields. ... Notice single quotes around the employee name and Hash marks around the ... Dim strSQL As String ...
    (microsoft.public.access.formscoding)
  • Re: Class fog in my brain
    ... suppose you have a UDT that has data pertaining ... to an employee in your latest HR manager program. ... Then give it a public function called FullName: ... Public Function FullNameAs String ...
    (microsoft.public.vb.general.discussion)
  • Re: Sample code for random access file io program
    ... int iRecordNumber; ... In any case, what you probably should do is use a byte array, set up for the exact size of the record, then for each employee oject you add a method that returns a byte array representation of the object. ... Part of the problem is that the Name string is variable length and I ...
    (comp.lang.java.programmer)
  • Need help with looping through records to email report
    ... I have a report called rpt2008ProcedureReview ... and email it to each employee. ... Dim rst As DAO.Recordset ... Dim strAcountStatus As String ...
    (microsoft.public.access.forms)