• TimeTestApplet
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class TimeTestApplet extends JApplet {
       private Time time;
       private JLabel hourLabel, minuteLabel, secondLabel;
       private JTextField hourField, minuteField, secondField, displayField;
       private JButton exitButton;
    
       // set up GUI
       public TimeTestApplet()
       {
    
          time = new Time();  // create Time object
    
          // use inherited method getContentPane to get window's content pane
          Container container = getContentPane();  
          container.setLayout( new FlowLayout() );  // change layout
    
          // set up hourLabel and hourField
          hourLabel = new JLabel( "Set Hour" );
          hourField = new JTextField( 10 );
          container.add( hourLabel );
          container.add( hourField );
    
          // set up minuteLabel and minuteField
          minuteLabel = new JLabel( "Set Minute" );
          minuteField = new JTextField( 10 );
          container.add( minuteLabel );
          container.add( minuteField );
    
          // set up secondLabel and secondField
          secondLabel = new JLabel( "Set Second" );
          secondField = new JTextField( 10 );
          container.add( secondLabel );
          container.add( secondField );
    
          // set up displayField
          displayField = new JTextField( 30 );
          displayField.setEditable( false );
          container.add( displayField );
    
          // set up exitButton
          exitButton = new JButton( "Exit" );
          container.add( exitButton );
    
          // create an instance of inner class ActionEventHandler
          ActionEventHandler handler = new ActionEventHandler();
    
          // register event handlers; the object referenced by handler 
          // is the ActionListener, which contains method actionPerformed 
          // that will be called to handle action events generated by 
          // hourField, minuteField, secondField and exitButton
          hourField.addActionListener( handler ); 
          minuteField.addActionListener( handler );
          secondField.addActionListener( handler );
          exitButton.addActionListener( handler );
    
       } // end constructor
    
       // display time in displayField
       public void displayTime()
       {
          displayField.setText( "The time is: " + time );
       }
    
       // inner class declaration for handling JTextField and JButton events
       private class ActionEventHandler implements ActionListener {
    
          // method to handle action events 
          public void actionPerformed( ActionEvent event )
          {
             // user pressed exitButton
             if ( event.getSource() == exitButton )
                System.exit( 0 );   // terminate the application
    
             // user pressed Enter key in hourField
             else if ( event.getSource() == hourField ) {
                time.setHour( Integer.parseInt( 
                   event.getActionCommand() ) );
                hourField.setText( "" );
             }
    
             // user pressed Enter key in minuteField
             else if ( event.getSource() == minuteField ) {
                time.setMinute( Integer.parseInt( 
                   event.getActionCommand() ) );
                minuteField.setText( "" );
             }
    
             // user pressed Enter key in secondField
             else if ( event.getSource() == secondField ) {
                time.setSecond( Integer.parseInt( 
                   event.getActionCommand() ) );
                secondField.setText( "" );
             }
    
             displayTime();  // call outer class's method
    
          } // end method actionPerformed
    
       } // end inner class ActionEventHandler
    
    } // end class TimeTestApplet