• TimeTestApplet.java
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    import com.deitel.jhtp5.ch08.Time1;  // import Time1 class
    
    public class TimeTestApplet extends JApplet implements ActionListener{
    
       JButton button;  
       Time1 time;
       String output;
    
       public void init()
       {
          button = new JButton( "Click to show result" );
      
          getContentPane().add( button );
    
          time = new Time1();  // calls Time1 constructor
    
          // append String version of time to String output
          output = "The initial universal time is: " +
             time.toUniversalString() + "\nThe initial standard time is: " +
             time.toStandardString();
    
          // change time and append updated time to output
          time.setTime( 13, 27, 6 ); 
          output += "\n\nUniversal time after setTime is: " + 
             time.toUniversalString() +
             "\nStandard time after setTime is: " + time.toStandardString();
    
          // set time with invalid values; append updated time to output
          time.setTime( 99, 99, 99 ); 
          output += "\n\nAfter attempting invalid settings: " + 
             "\nUniversal time: " + time.toUniversalString() +
             "\nStandard time: " + time.toStandardString();
    
          button.addActionListener( this );
    
       } // end init()
    
       public void actionPerformed( ActionEvent actionEvent )
       {
          JOptionPane.showMessageDialog( null, output,
             "Testing Class Time1", JOptionPane.INFORMATION_MESSAGE );
       }
    } // end class TimeTestApplet
    
  • com.deitel.jhtp5.ch08.Time1 class
    
    // Fig. 8.16: Time1.java
    // Time1 class declaration maintains the time in 24-hour format.
    package com.deitel.jhtp5.ch08;
    
    import java.text.DecimalFormat; 
    
    public class Time1 extends Object {
       private int hour;     // 0 - 23
       private int minute;   // 0 - 59
       private int second;   // 0 - 59
    
       // Time1 constructor initializes each instance variable to zero; 
       // ensures that each Time1 object starts in a consistent state
       public Time1()
       {
          setTime( 0, 0, 0 );
       }
    
       // set a new time value using universal time; perform 
       // validity checks on the data; set invalid values to zero
       public void setTime( int h, int m, int s )
       {
          hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
          minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
          second = ( ( s >= 0 && s < 60 ) ? s : 0 );
       }
    
       // convert to String in universal-time format
       public String toUniversalString()
       {
          DecimalFormat twoDigits = new DecimalFormat( "00" );
    
          return twoDigits.format( hour ) + ":" +
             twoDigits.format( minute ) + ":" + twoDigits.format( second );
       }
    
       // convert to String in standard-time format
       public String toStandardString()
       {
          DecimalFormat twoDigits = new DecimalFormat( "00" );
          
          return ( (hour == 12 || hour == 0) ? 12 : hour % 12 ) + ":" + 
             twoDigits.format( minute ) + ":" + twoDigits.format( second ) +
             ( hour < 12 ? " AM" : " PM" );
       }
    
    } // end class Time1