• TimeTest4.java
    // Fig. 8.8: TimeTest4.java
    // Demonstrating the Time3 class set and get methods.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class TimeTest4 extends JApplet implements ActionListener {
       private Time3 time;
    
       private JLabel hourLabel, minuteLabel, secondLabel;
       private JTextField hourField, minuteField, secondField, displayField;
       private JButton tickButton;
    
       // create Time3 object and set up GUI
       public void init()
       {
          time = new Time3();  // create Time3 object
    
          // get applet's content pane and change its layout to FlowLayout
          Container container = getContentPane();  
          container.setLayout( new FlowLayout() ); 
    
          // 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 tickButton
          tickButton = new JButton( "Add 1 to Second" );
          container.add( tickButton );
    
          // register event handlers; this applet is the ActionListener, 
          // which contains method actionPerformed that will be called to 
          // handle action events generated by hourField, minuteField, 
          // secondField and tickButton
          hourField.addActionListener( this ); 
          minuteField.addActionListener( this );
          secondField.addActionListener( this );
          tickButton.addActionListener( this );
    
          displayTime(); // update text in displayField and status bar
    
       } // end method init
    
       // event handler for button and textfield events
       public void actionPerformed( ActionEvent event )
       {
          // process tickButton event
          if ( event.getSource() == tickButton )
             tick();
    
          // process hourField event
          else if ( event.getSource() == hourField ) {
             time.setHour( Integer.parseInt( event.getActionCommand() ) );
             hourField.setText( "" );
          }
    
          // process minuteField event
          else if ( event.getSource() == minuteField ) {
             time.setMinute( Integer.parseInt( event.getActionCommand() ) );
             minuteField.setText( "" );
          }
    
          // process secondField event
          else if ( event.getSource() == secondField ) {
             time.setSecond( Integer.parseInt( event.getActionCommand() ) );
             secondField.setText( "" );
          }
    
          displayTime(); // update text in displayField and status bar
    
       } // end method actionPerformed
    
       // update displayField and applet container's status bar
       public void displayTime()
       {
          displayField.setText( "Hour: " + time.getHour() + "; Minute: " + 
             time.getMinute() + "; Second: " + time.getSecond() );
    
          showStatus( "Standard time is: " + time.toStandardString() +
             "; Universal time is: " + time.toUniversalString() );
    
       } // end method updateDisplay
    
       // add one to second and update hour/minute if necessary 
       public void tick()
       {
          time.setSecond( ( time.getSecond() + 1 ) % 60 );
    
          if ( time.getSecond() == 0 ) {
             time.setMinute( ( time.getMinute() + 1 ) % 60 );
    
             if ( time.getMinute() == 0 )
                time.setHour( ( time.getHour() + 1 ) % 24 );
          }
    
       } // end method tick
    
    } // end class TimeTest4