⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemclockclient.java

📁 高级java2 大学教程(含源码,经典的Java学习教程
💻 JAVA
字号:
// Fig. 26.4: SystemClockClient.java
// Client application for the SystemClock example.

package com.deitel.advjhtp1.idl.clock;

// Java core packages
import java.text.DateFormat;
import java.util.*;

// Java extension packages
import javax.swing.JOptionPane;

// OMG CORBA packages
import org.omg.CORBA.ORB;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;

public class SystemClockClient implements Runnable {
   private SystemClock timeServer;

   // initialize client
   public SystemClockClient( String [] params ) throws Exception
   {
      connectToTimeServer( params );
      startTimer();
   }

   // use NameService to connect to time server
   private void connectToTimeServer( String [] params )
      throws org.omg.CORBA.ORBPackage.InvalidName,
         org.omg.CosNaming.NamingContextPackage.InvalidName,
         NotFound, CannotProceed
   {
      // Connect to SystemClock server
      ORB orb = ORB.init( params, null );

      org.omg.CORBA.Object corbaObject =
         orb.resolve_initial_references("NameService");
      NamingContext naming =
         NamingContextHelper.narrow( corbaObject );

      // Resolve object reference in naming
      NameComponent nameComponent = 
         new NameComponent( "TimeServer", "" );
      NameComponent path[] = { nameComponent };
      corbaObject = naming.resolve( path );
      timeServer = SystemClockHelper.narrow( corbaObject );
   }

   // start timer thread
   private void startTimer()
   {
      Thread thread = new Thread( this );
      thread.start();
   }

   // Talk to server on regular basis and display results
   public void run()
   {
      long time = 0;
      Date date = null;
      DateFormat format = 
         DateFormat.getTimeInstance( DateFormat.LONG );
      String timeString = null;
      int response = 0;

      while( true ) {
         time = timeServer.currentTimeMillis();
         date = new Date( time );
         timeString = format.format( date );

         response = JOptionPane.showConfirmDialog( null, timeString,
            "SystemClock Example", JOptionPane.OK_CANCEL_OPTION );

         if ( response == JOptionPane.CANCEL_OPTION )
            break;  // Get us out of here
      }

      System.exit( 0 );
   }

   // Main method to execute client application
   public static void main (String args[])
   {
      // create client
      try {
         new SystemClockClient( args );
      }

      // process exceptions that occur while client executes
      catch ( Exception exception ) {
         System.out.println( 
            "Exception thrown by SystemClockClient:" );
         exception.printStackTrace();
      }
   }

}   // end of class SystemClockClient

/**************************************************************************
 * (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall.     *
 * All Rights Reserved.                                                   *
 *                                                                        *
 * DISCLAIMER: The authors and publisher of this book have used their     *
 * best efforts in preparing the book. These efforts include the          *
 * development, research, and testing of the theories and programs        *
 * to determine their effectiveness. The authors and publisher make       *
 * no warranty of any kind, expressed or implied, with regard to these    *
 * programs or to the documentation contained in these books. The authors *
 * and publisher shall not be liable in any event for incidental or       *
 * consequential damages in connection with, or arising out of, the       *
 * furnishing, performance, or use of these programs.                     *
 *************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -