// Fig. 3.7: SwitchTest.java // Counting letter grades import java.awt.*; import java.applet.Applet; import java.awt.event.*; public class SwitchTest extends Applet implements ActionListener { Label prompt; // label for text field TextField input; // text field to enter grades int aCount = 0, bCount = 0, cCount = 0, dCount = 0, fCount = 0; public void init() { prompt = new Label( "Enter grade" ); input = new TextField( 2 ); input.addActionListener( this ); add( prompt ); add( input ); } public void paint( Graphics g ) { g.drawString( "Totals for each letter grade:", 25, 40 ); g.drawString( "A: " + aCount, 25, 55 ); g.drawString( "B: " + bCount, 25, 70 ); g.drawString( "C: " + cCount, 25, 85 ); g.drawString( "D: " + dCount, 25, 100 ); g.drawString( "F: " + fCount, 25, 115 ); } public void actionPerformed( ActionEvent e ) { String val = e.getActionCommand(); char grade = val.charAt( 0 ); showStatus( "" ); // clear status bar area input.setText( "" ); // clear input text field switch ( grade ) { case 'A': case 'a': // Grade was uppercase A ++aCount; // or lowercase a. break; case 'B': case 'b': // Grade was uppercase B ++bCount; // or lowercase b. break; case 'C': case 'c': // Grade was uppercase C ++cCount; // or lowercase c. break; case 'D': case 'd': // Grade was uppercase D ++dCount; // or lowercase d. break; case 'F': case 'f': // Grade was uppercase F ++fCount; // or lowercase f. break; default: // catch all other characters showStatus( "Incorrect grade. Enter new grade." ); break; } repaint(); // display summary of results } }