/* * RMIDemoClient.java 1.0 98/11/10 * * Copyright 1998 by Bill Giel/KC Multimedia and Design Group, Inc., * All rights reserved. * * Disclaimer of Warranty. Software is provided "AS IS," * without a warranty of any kind. ALL EXPRESS OR IMPLIED * REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED * WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. IN NO * EVENT WILL THE DEVELOPER OR ITS LICENSORS BE LIABLE FOR * ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, * RELATING TO THE USE, DOWNLOAD, DISTRIBUTION OF OR INABILITY * TO USE SOFTWARE, EVEN IF THE DEVELOPER OR ITS LICENSORS HAS * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. */ package com.kcmultimedia.demo; import java.awt.*; import java.awt.event.*; import java.rmi.*; /** * Client side RMI demo application * * @version 1.0 11/10/98 * @author Bill Giel */ public class RMIDemoClient extends Frame implements ActionListener { String hostname; TextField question,answer; Button fetch, quit; public RMIDemoClient(String hostname) { super("RMI Demo Client"); this.hostname = hostname; addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0);} } ); setResizable(false); setBackground(SystemColor.control); setForeground(SystemColor.controlText); question = new TextField("",35); answer = new TextField("",35); answer.setEditable(false); fetch = new Button("Get Answer"); fetch.addActionListener(this); quit = new Button("Quit"); quit.addActionListener(this); GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout(gridbag); c.weightx = c.weighty = 0; c.gridwidth = GridBagConstraints.REMAINDER; c.insets = new Insets(5,5,0,5); add(new Label("Enter a Yes/No Question"),c); c.insets = new Insets(0,5,0,5); add(question, c); c.insets = new Insets(5,5,0,5); add(new Label("The answer to your question..."), c); c.insets = new Insets(0,5,0,5); add(answer, c); Panel p = new Panel(); p.add(fetch); p.add(quit); c.insets = new Insets(5,5,5,5); add(p, c); pack(); } public void actionPerformed(ActionEvent e) { Object src = e.getSource(); if(src.equals(fetch)){ if(question.getText().trim().length() > 0){ try{ String s = getAnswer(); answer.setText(s); }catch(Exception ex){ System.out.println(ex.toString()); answer.setText("Error: Could not get answer!"); } } else{ answer.setText("Please enter a question."); } } else if(src.equals(quit)){ System.exit(0); } } public String getAnswer() throws Exception { RMIDemo demo = (RMIDemo)Naming.lookup("//" + hostname + "/" + RMIDemo.BOUNDNAME); return demo.getAnswer(); } public static void printUsage() { System.out.println("\nRMIDemoClient Usage:"); System.out.println("\njava RMIDemoClient \n"); } public static void main(String[] args) { if(args.length != 1){ printUsage(); System.exit(0); } RMIDemoClient rdc = new RMIDemoClient(args[0]); rdc.setVisible(true); } }