import java.awt.*; import java.awt.event.*; import java.lang.reflect.*; import java.net.*; import java.text.*; import java.util.*; import javax.swing.*; import javax.swing.text.*; class GradeCalcPanel extends JPanel { public GradeCalcPanel() { mainPanel = new JPanel(); mainPanel.setLayout(new GridLayout(7, 2)); add(mainPanel, BorderLayout.CENTER); final JComboBox testnumCombo = new JComboBox(); testnumCombo.addItem("0"); testnumCombo.addItem("1"); testnumCombo.addItem("2"); testnumCombo.addItem("3"); JLabel testnumLabel = new JLabel("Number of Tests to Replace:"); mainPanel.add(testnumLabel); mainPanel.add(testnumCombo); testnumCombo.setSelectedIndex(1); final JFormattedTextField intTest1 = new JFormattedTextField(NumberFormat.getIntegerInstance()); addRow("Test 1=", intTest1); final JFormattedTextField intTest2 = new JFormattedTextField(NumberFormat.getIntegerInstance()); addRow("Test 2=", intTest2); final JFormattedTextField intTest3 = new JFormattedTextField(NumberFormat.getIntegerInstance()); addRow("Test 3=", intTest3); final JFormattedTextField intHw = new JFormattedTextField(NumberFormat.getIntegerInstance()); intHw.setValue(new Integer(100)); addRow("Homework/Quiz=", intHw); final JFormattedTextField intFinal = new JFormattedTextField(NumberFormat.getIntegerInstance()); addRow("Final=", intFinal); final JFormattedTextField dblGrade = new JFormattedTextField(NumberFormat.getInstance()); addRow("Grade =", dblGrade); JPanel buttonPanel = new JPanel(); calcButton = new JButton("Calculate"); clearButton = new JButton("Clear All"); buttonPanel.add(calcButton); buttonPanel.add(clearButton); add(buttonPanel, BorderLayout.SOUTH); calcButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { //System.out.println("You pressed the Calculate button."); double t1=Double.parseDouble(intTest1.getText()); double t2=Double.parseDouble(intTest2.getText()); double t3=Double.parseDouble(intTest3.getText()); double h=Double.parseDouble(intHw.getText()); int tn=1; String stn=(String) testnumCombo.getSelectedItem(); double f=Double.parseDouble(intFinal.getText()); double g=0; double[] test = new double[3]; test[0]=t1; test[1]=t2; test[2]=t3; Arrays.sort(test); //number of tests to replace if(stn.equals("0")) { g=GradeCalcEngine.GradeCalc(test[0],test[1],test[2],h,f); } else if(stn.equals("1")) { if(test[0] < f) { g=GradeCalcEngine.GradeCalc(f,test[1],test[2],h,f); } else { g=GradeCalcEngine.GradeCalc(test[0],test[1],test[2],h,f); } } else if(stn.equals("2")) { if(test[1] < f) { g=GradeCalcEngine.GradeCalc(f,f,test[2],h,f); } else if(test[0] < f) { g=GradeCalcEngine.GradeCalc(f,test[1],test[2],h,f); } else { g=GradeCalcEngine.GradeCalc(test[0],test[1],test[2],h,f); } } else if(stn.equals("3")) { if(test[2] < f) { g=GradeCalcEngine.GradeCalc(f,f,f,h,f); } else if(test[1] < f) { g=GradeCalcEngine.GradeCalc(f,f,test[2],h,f); } else if(test[0] < f) { g=GradeCalcEngine.GradeCalc(f,test[1],test[2],h,f); } else { g=GradeCalcEngine.GradeCalc(test[0],test[1],test[2],h,f); } } dblGrade.setValue(g); } }); clearButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { //System.out.println("You pressed the Clear button."); intTest1.setValue(null); intTest2.setValue(null); intTest3.setValue(null); intHw.setValue(100); testnumCombo.setSelectedIndex(1); intFinal.setValue(null); dblGrade.setValue(null); } }); } public void addRow(String labelText, final JFormattedTextField field) { mainPanel.add(new JLabel(labelText)); mainPanel.add(field); //final JLabel valueLabel = new JLabel(); //mainPanel.add(valueLabel); } //remove for applet //public static final int WIDTH = 550; //public static final int HEIGHT = 250; private JButton calcButton; private JButton clearButton; private JPanel mainPanel; } class GradeCalcEngine { public static double GradeCalc(double t1,double t2,double t3,double h,double f) { double testavg; testavg = (t1+t2+t3)/3; return .5*testavg+.4*f+.1*h; } } g+.4*f+.1*h; } }