import java.util.*; import java.io.*; import java.text.DecimalFormat; public class PayrollDB extends Vector { public String toString() { String st = ""; DecimalFormat precision2 = new DecimalFormat( "0.00" ); for (int i = 0; i < size(); i++) { st += ((Employee) get(i)).toString() + " earned $" + precision2.format( ((Employee) get(i)).earnings() ) + '\n'; } return st; } public void load(BufferedReader br, final String DELIM) throws IOException { String inputLine; while((inputLine = br.readLine()) != null) { StringTokenizer st = new StringTokenizer(inputLine, DELIM); Employee employee; char symbol = st.nextToken().charAt(0); switch (symbol) { case 'B': employee = new Boss( st.nextToken(), st.nextToken(), Double.parseDouble(st.nextToken())); add(employee); break; case 'C': employee = new CommissionWorker( st.nextToken(), st.nextToken(), Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken()), Integer.parseInt(st.nextToken())); add(employee); break; case 'P': employee = new PieceWorker( st.nextToken(), st.nextToken(), Double.parseDouble(st.nextToken()), Integer.parseInt(st.nextToken())); add(employee); break; case 'H': employee = new HourlyWorker( st.nextToken(), st.nextToken(), Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken())); add(employee); break; } } } }
import java.awt.*; import java.applet.*; import java.util.*; import java.awt.event.*; import java.io.*; import java.net.*; public class PayrollDBApplet extends Applet implements ActionListener, ItemListener { PayrollDB payrollDB; Choice employeeList; TextArea payReport; TextField employeeReport; Button bGenReport, bClearReport; public void init() { payrollDB = new PayrollDB(); employeeList = new Choice(); employeeReport = new TextField(50); payReport = new TextArea(10,50); bGenReport = new Button("Generate Report"); bClearReport = new Button("Clear Report"); try { URL address = new URL("http://personal.cityu.edu.hk/~dcywchan/2002ssd3/datafile.html"); URLConnection data = address.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(data.getInputStream())); payrollDB.load(in,"_"); for (int i = 0; i < payrollDB.size(); i++) { employeeList.add( ((Employee) payrollDB.get(i)).toString()); } add(employeeList); add(employeeReport); add(payReport); add(bGenReport); add(bClearReport); bGenReport.addActionListener(this); bClearReport.addActionListener(this); employeeList.addItemListener(this); in.close(); } catch (MalformedURLException e) { } catch (IOException e) { } } public void actionPerformed(ActionEvent e) { if (e.getSource().equals(bGenReport)) { payReport.setText(payrollDB.toString()); } else if (e.getSource().equals(bClearReport)) { payReport.setText(""); } } public void itemStateChanged(ItemEvent ie) { StringTokenizer st = new StringTokenizer(employeeList.getSelectedItem(),":"); String name = st.nextToken(); name = st.nextToken(); int i = 0; while (! name.equals( " " + ((Employee) payrollDB.get(i)).getFirstName() + " " + ((Employee) payrollDB.get(i)).getLastName() ) ) { i++; } employeeReport.setText( ((Employee) payrollDB.get(i)).toString() + " earned $" + ((Employee) payrollDB.get(i)).earnings() ); } }
Previou page | Next page |