亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? printerclientgui.java

?? java的一些教程 大家看看,很有用的
?? JAVA
字號:
// Fig: PrinterClientGUI.java
// This application demonstrates how to obtain the proxy of
// a dynamic service and management policies, and call methods
// of the dynamic service.
package com.deitel.advjhtp1.jiro.DynamicService.client;

// Java core packages
import java.rmi.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;

// Java standard extensions
import javax.swing.*;

// Jini core package
import net.jini.core.lease.Lease;
import net.jini.core.event.*;
import net.jini.core.entry.Entry;

// Jini extension package
import net.jini.lease.LeaseRenewalManager;
import net.jini.lookup.entry.*;

// Jiro packages
import javax.fma.common.*;
import javax.fma.services.*;
import javax.fma.services.event.EventService;
import com.sun.jiro.util.*;

// Deitel packages
import com.deitel.advjhtp1.jiro.DynamicService.common.*;
import com.deitel.advjhtp1.jiro.DynamicService.service.*;

public class PrinterClientGUI extends JFrame 
   implements RemoteEventListener {

   private PrinterManagement printerManagementProxy;
   private JTextArea printerStatusTextArea = 
      new JTextArea();
   private JTextArea printerEventTextArea = 
      new JTextArea();
   private Lease observerLease;
   private LeaseRenewalManager leaseRenewalManager;

   public PrinterClientGUI( String domain ) 
   {
      super( "JIRO Printer Management Example" );

      // set security manager
      if ( System.getSecurityManager() == null )
         System.setSecurityManager( new RMISecurityManager() );

      // obtain reference to proxy
      printerManagementProxy = 
         getPrinterManagementProxy( domain );

      // subscribe to event service as an observer listener
      subscriberObserver( domain );
      
      Container container = getContentPane();

      // status panel
      JPanel printerStatusPanel = new JPanel();
      printerStatusPanel.setPreferredSize(
         new Dimension( 512, 200 ) );
      JScrollPane statusScrollPane = new JScrollPane();
      statusScrollPane.setAutoscrolls( true );
      statusScrollPane.setPreferredSize(
         new Dimension( 400, 150 ) );
      statusScrollPane.getViewport().add( 
         printerStatusTextArea, null );
      printerStatusPanel.add( statusScrollPane, null );

      // buttons panel
      JPanel buttonPanel = new JPanel();
      buttonPanel.setPreferredSize(
         new Dimension( 512, 200 ) );
 
      // define action for Check Status button
      JButton checkStatusButton = 
         new JButton( "Check Status" );
      checkStatusButton.addActionListener(

         new ActionListener() {

            public void actionPerformed( ActionEvent event ) {
               checkStatusButtonAction( event );
            }
         }
      );

      // define action for Remove Jammed Paper button
      JButton cancelJobsButton = new JButton( 
         "Cancel Pending Print Jobs" );
      cancelJobsButton.addActionListener(

         new ActionListener() {

            public void actionPerformed( ActionEvent event ) {
               cancelJobsButtonAction( event );
            }
         }
      );

      // add three buttons to the panel
      buttonPanel.add( checkStatusButton, null );
      buttonPanel.add( cancelJobsButton, null );

      // events panel
      JPanel printerEventPanel = new JPanel();
      printerEventPanel.setPreferredSize(
         new Dimension( 512, 200) );
      JScrollPane eventsScrollPane = new JScrollPane();
      eventsScrollPane.setAutoscrolls( true );
      eventsScrollPane.setPreferredSize(
         new Dimension( 400, 150 ) );
      eventsScrollPane.getViewport().add(
         printerEventTextArea, null );
      printerEventPanel.add( eventsScrollPane, null );

      // initialize the text 
      printerStatusTextArea.setText( "Printer Status: ---\n" );
      printerEventTextArea.setText( "Events: --- \n" );
      
      // put all the panels together
      container.add( printerStatusPanel, BorderLayout.NORTH );
      container.add( printerEventPanel, BorderLayout.SOUTH );
      container.add( buttonPanel, BorderLayout.CENTER );

      // release observer listener and cancel scheduled task 
      // when window closing
      addWindowListener(

         new WindowAdapter() {

            public void windowClosing( WindowEvent event )
            {
               // release listener and cancel scheduled task
               try {
                  leaseRenewalManager.remove( observerLease );
               }
      
               // handle exception releasing observer listener 
               catch ( Exception exception ) {
                  exception.printStackTrace();
               }
   
               // terminate the program
               System.exit( 0 );

            } // end method windowClosing

         } // end WindowAdapter constructor

      ); // end addWindowListener

   } // end PrinterManagementGUI constructor

   // check print status
   public void checkStatusButtonAction( ActionEvent event ) 
   {
      boolean isOnline = false;
      boolean isPaperJam = false;
      boolean isPrinting = false;
      int paperRemaining = 0;
      String[] pendingJobs = null;

      // manage printer remotely
      try { 

         // check if the printer is on line
         isOnline = printerManagementProxy.isOnline();
  
         // check if the printer is paper jammed
         isPaperJam = printerManagementProxy.isPaperJam();

         // check if the printing is pringint
         isPrinting = printerManagementProxy.isPrinting();

         // get the paper tray
            paperRemaining = printerManagementProxy.getPaperInTray();

         // get pending jobs
         pendingJobs = 
            printerManagementProxy.getPendingPrintJobs();
      } 

      // handle exception calling dynamic service methods
      catch ( Exception exception ) {
         exception.printStackTrace();
      }

      // status for the online condition
      if ( isOnline ) 
         printerStatusTextArea.append( 
            "\nPrinter is ONLINE.\n" );  
      else 
         printerStatusTextArea.append( 
            "\nPrinter is OFFLINE.\n" );
      
      // status for the paper jam condition
      if ( isPaperJam ) 
         printerStatusTextArea.append( "Paper jammed.\n" );
      else 
         printerStatusTextArea.append( "No Paper Jam.\n" );

      // status for the printing condition
      if ( isPrinting ) 
         printerStatusTextArea.append( 
            "Printer is currently printing.\n" );
      else 
         printerStatusTextArea.append( 
            "Printer is not printing.\n" );
      
      // status for paper tray condition      
      printerStatusTextArea.append( "Printer paper tray has " 
         + paperRemaining + " pages remaining.\n" );

      // number of pending jobs
      printerStatusTextArea.append( "Number of pending jobs: "
         + pendingJobs.length + "\n" );

   } // end method checkStatusButtonAction

   // cancel print jobs
   public void cancelJobsButtonAction( ActionEvent event )
   {
      // cancel pending print jobs
      try {
         printerManagementProxy.cancelPendingPrintJobs();
      }

      // handle exception canceling pending print jobs
      catch ( Exception exception) {
         exception.printStackTrace();
      }

   } // end method cancelJobsButtonAction

   // get dynamic service proxy
   public PrinterManagement getPrinterManagementProxy( 
      String domain )
   {
      Entry[] entries = new Entry[] {
         new ServiceInfo( "PrinterManagementImpl", 
            "Deitel Association, Inc.",
            "Deitel Association, Inc",
            "1.0", "Model 0", "0.0.0.1" )
         };

      DynamicServiceFinder finder = new DynamicServiceFinder(
         domain, entries );

      // return dynamic service proxy
      return ( PrinterManagement ) finder.getService();

   } // end method getPrinterManagementProxy

   // listener for events
   public void subscriberObserver( String domain )
   {
      // subscribe to printer events
      try {
         EventService eventService = 
            ServiceFinder.getEventService( domain );

         // subscribe as an observing listener to certain event
         RemoteEventListener listener = 
            new RemoteEventListenerImpl( this );
         observerLease = eventService.subscribeObserver( 
            ".Printer.Error", listener, null, 10 * 60 * 1000 );
         leaseRenewalManager = new LeaseRenewalManager(
            observerLease, Lease.FOREVER, null );
      }

      // handle exception subscribing to events
      catch ( Exception exception ) {
         exception.printStackTrace();
      }
   }

   // receive notification
   public void notify( RemoteEvent event )
   {
      String output = "\nEVENT: " + ( String ) event.getSource() 
         + "\n";
      SwingUtilities.invokeLater( 
         new TextAppender( printerEventTextArea, output ) );
   }

   // method main
   public static void main( String args[] )
   {
      String domain = "";

      // get the domain 
      if ( args.length != 1 ) {
         System.out.println( 
            "Usage: PrinterClientGUI Domain" );
         System.exit( 1 );
      }
      else 
         domain = args[ 0 ];

      PrinterClientGUI client = new PrinterClientGUI( domain );
      client.setSize( 500, 500 );
      client.setVisible( true );

   } // end main method

   // TextAppender appends text to a JTextArea. This Runnable
   // object should be executed only using SwingUtilities
   // methods invokeLater or invokeAndWait as it modifies
   // a live Swing component.
   private class TextAppender implements Runnable {

      private String text;
      private JTextArea textArea;

      // TextAppender constructor
      public TextAppender( JTextArea area, String newText )
      {
         text = newText;
         textArea = area;
      }

      // display new text in JTextArea
      public void run()
      {
         // append new message
         textArea.append( text );

         // move caret to end of messageArea to ensure new
         // message is visible on screen
         textArea.setCaretPosition(
            textArea.getText().length() );
      }

   } // end TextAppender inner class
}

/***************************************************************
 * (C) Copyright 2002 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 + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频热这里只有精品免费| 欧美一区二区女人| 欧美午夜精品久久久| 制服丝袜亚洲精品中文字幕| 国产亚洲欧美日韩俺去了| 中文字幕中文字幕在线一区 | 亚洲gay无套男同| 免费成人美女在线观看| 成人免费观看视频| 欧美日韩一区二区三区在线 | 国产精品精品国产色婷婷| 亚洲一区国产视频| 狠狠久久亚洲欧美| 欧美性猛片xxxx免费看久爱| 国产夜色精品一区二区av| 亚洲一区二区av在线| 精品亚洲欧美一区| 欧美日韩在线观看一区二区 | 成a人片亚洲日本久久| 欧美日韩精品电影| 欧美激情中文不卡| 免费看精品久久片| 色偷偷一区二区三区| 国产亚洲精品bt天堂精选| 婷婷中文字幕一区三区| 成人av在线资源网站| 日韩欧美色电影| 亚洲3atv精品一区二区三区| 一本大道久久a久久精二百| 久久久久久久久久久久久女国产乱| 亚洲图片欧美视频| 91视频一区二区| 中文字幕 久热精品 视频在线| 五月婷婷欧美视频| 91久久奴性调教| 成人欧美一区二区三区1314| 国产一区在线精品| 精品成人一区二区三区四区| 日韩av不卡在线观看| 欧美日韩综合在线免费观看| 亚洲精品菠萝久久久久久久| 北条麻妃一区二区三区| 国产日韩av一区| 国产成人免费视频一区| 久久久精品影视| 国产白丝精品91爽爽久久| 久久亚洲一级片| 日本网站在线观看一区二区三区| 欧美日韩免费不卡视频一区二区三区 | 国产精品午夜在线观看| 国产一区二区三区免费看 | 婷婷开心激情综合| 欧美日韩精品一区二区天天拍小说 | 精品国产三级电影在线观看| 蓝色福利精品导航| 欧美tickling网站挠脚心| 久久成人久久爱| 2023国产精品| 国产毛片一区二区| 亚洲国产精华液网站w| 99久久免费国产| 亚洲美女免费视频| 欧美熟乱第一页| 麻豆极品一区二区三区| 日韩精品午夜视频| 日韩三级中文字幕| 成人美女在线观看| 日韩中文字幕不卡| 亚洲欧洲国产日韩| 中文字幕在线一区免费| 欧美日韩五月天| 成人精品gif动图一区| 午夜久久久久久| 中文字幕一区免费在线观看| 91精品国产91热久久久做人人| 国产乱码精品一区二区三| 一区二区三区精品久久久| 日韩一级黄色片| 91免费观看在线| 国产精品一级片在线观看| 亚洲电影一级片| 国产精品天干天干在线综合| 6080日韩午夜伦伦午夜伦| 成人一级片在线观看| 久久精品国内一区二区三区| 一区二区三区在线观看欧美| 久久久精品日韩欧美| 91精品国产色综合久久久蜜香臀| www.亚洲人| 国内精品国产成人国产三级粉色 | 亚洲国产精品成人综合| 91精品国产手机| 欧美日韩亚洲另类| 91美女在线视频| 成人免费av网站| 国产在线精品视频| 欧美aaa在线| 五月婷婷另类国产| 一区2区3区在线看| 中文字幕一区在线观看| 国产视频一区二区在线| 日韩欧美国产精品一区| 51久久夜色精品国产麻豆| 欧美日韩中文字幕一区| 色综合久久综合中文综合网| 99久久精品一区| av中文字幕亚洲| 成人午夜av在线| 成人v精品蜜桃久久一区| 国产一区二区三区在线观看精品| 亚洲靠逼com| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | av电影天堂一区二区在线观看| 国产在线视频精品一区| 韩国精品免费视频| 国产乱色国产精品免费视频| 精品一区二区三区免费播放| 久久精品国产99| 久久黄色级2电影| 激情综合色播激情啊| 九一九一国产精品| 国产一区二区三区香蕉| 国产成人亚洲综合a∨猫咪| 丰满少妇久久久久久久| eeuss鲁一区二区三区| 91在线免费播放| 91视频国产资源| 欧美日韩一级大片网址| 日韩欧美亚洲国产另类| 久久婷婷国产综合精品青草| 国产欧美视频在线观看| 亚洲图片激情小说| 亚洲美女一区二区三区| 午夜精品在线看| 激情综合五月天| 成人国产亚洲欧美成人综合网| 91免费视频网| 91精品国产手机| 国产欧美精品一区aⅴ影院 | 中文字幕 久热精品 视频在线| 亚洲欧洲一区二区在线播放| 亚洲天堂中文字幕| 婷婷六月综合亚洲| 国产成人福利片| 色综合久久88色综合天天| 777xxx欧美| 中文一区二区在线观看| 亚洲6080在线| 成人免费视频caoporn| 精品视频全国免费看| 国产亚洲一区字幕| 亚洲国产视频一区二区| 国产精品一二三四| 欧美人与性动xxxx| 久久久久久久久免费| 亚洲超碰97人人做人人爱| 国产高清久久久| 欧美美女一区二区| 欧美国产精品中文字幕| 亚洲成av人片一区二区三区| 国产一区二区三区四| 欧美日韩国产首页| 国产精品区一区二区三| 日韩专区在线视频| 91视频91自| 亚洲国产精品激情在线观看| 免费亚洲电影在线| 欧美在线观看18| 中文字幕免费一区| 麻豆91免费看| 欧美体内she精视频| 国产精品久久久久久一区二区三区| 午夜久久久久久电影| 色综合一个色综合| 欧美激情资源网| 精品午夜久久福利影院| 69成人精品免费视频| 一区二区三区中文字幕电影| 成人av在线观| 国产婷婷一区二区| 国模一区二区三区白浆| 69堂精品视频| 偷拍亚洲欧洲综合| 欧美日韩国产一二三| 一区二区三区影院| 99riav一区二区三区| www.久久久久久久久| 欧美一区二区三区四区视频| 国产精品美女久久久久久久久久久 | 精品盗摄一区二区三区| 丝袜美腿亚洲一区二区图片| 欧美最猛性xxxxx直播| 亚洲少妇30p| 99久久99久久综合| 国产精品热久久久久夜色精品三区 | 蜜桃一区二区三区在线观看| 在线免费观看日韩欧美| 一区二区三区四区av| 色婷婷久久久久swag精品| 中文字幕一区二区三区蜜月|