// CheckboxDemo.java // Examples of checkboxes and radio buttons // APPLET CODE="CheckboxDemo" HEIGHT=400 WIDTH=600 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CheckboxDemo extends JApplet implements ActionListener, ItemListener { Container c; ButtonGroup klass; JRadioButton fr, so, jr, sr; JCheckBox acct151, fin125, csc11, engl1; JTextField desc; JButton go, erase; String year; String bio = ""; // need to initialize to avoid nullPointerException String courses [ ]; int k = -1; // counter for klass public void init( ) { // build GUI c = getContentPane( ); c.setLayout( new FlowLayout( ) ); courses = new String[ 4 ]; fr = new JRadioButton( "Freshman", false ); fr.addItemListener( this ); c.add( fr ); so = new JRadioButton( "Sophomore", true ); so.addItemListener( this ); c.add( so ); jr = new JRadioButton( "Junior", false ); jr.addItemListener( this ); c.add( jr ); sr = new JRadioButton( "Senior", false ); sr.addItemListener( this ); c.add( sr ); // create radio button grouping klass = new ButtonGroup( ); klass.add( fr ); klass.add( so ); klass.add( jr ); klass.add( sr ); acct151 = new JCheckBox( "Acct 151" ); acct151.addItemListener( this ); c.add( acct151 ); fin125 = new JCheckBox( "Fin 125" ); fin125.addItemListener( this ); c.add( fin125 ); csc11 = new JCheckBox( "CSc 11" ); csc11.addItemListener( this ); c.add( csc11 ); engl1 = new JCheckBox( "Engl 1" ); engl1.addItemListener( this ); c.add( engl1 ); desc = new JTextField( 50 ); c.add( desc ); go = new JButton( "Enter" ); go.addActionListener( this ); c.add( go ); erase = new JButton( "Clear" ); erase.addActionListener( this ); c.add( erase ); } // method called if a check box or radio button is changed public void itemStateChanged( ItemEvent e ) { if ( e.getSource( ) == acct151 ) if ( e.getStateChange( ) == ItemEvent.SELECTED ) courses[ ++ k ] = "Fin Acct"; if ( e.getSource( ) == fin125 ) if ( e.getStateChange( ) == ItemEvent.SELECTED ) courses[ ++ k ] = "Bus Fin"; if ( e.getSource( ) == csc11 ) if ( e.getStateChange( ) == ItemEvent.SELECTED ) courses[ ++ k ] = "Intro Comp"; if ( e.getSource( ) == engl1 ) if ( e.getStateChange( ) == ItemEvent.SELECTED ) courses[ ++ k ] = "Lit"; if ( e.getSource( ) == fr ) year = "freshman"; if ( e.getSource( ) == so ) year = "sophomore"; if ( e.getSource( ) == jr ) year = "junior"; if ( e.getSource( ) == sr ) year = "senior"; } // method called if either go or clear button is clicked public void actionPerformed( ActionEvent e ) { if ( e.getSource( ) == go ) { // build a concatenated string using the courses array for ( int i = 0; i <= k; i++ ) { bio = bio.concat( courses[ i ] ); if ( i < k ) bio = bio.concat( " and " ); } desc.setText( "You are a " + year + " and have taken " + bio ); } else { // reset the counter, the string, the check boxes and the course array k = -1; bio = ""; acct151.setSelected( false ); fin125.setSelected( false ); csc11.setSelected( false ); engl1.setSelected( false ); for ( int i = 0; i < courses.length; i++ ) courses[ i ] = ""; desc.setText( "" ); // clear button erases text field } } }