Package

Source Code of SiteSelector

// Fig. 24.2: SiteSelector.java
// This program loads a document from a URL.
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.ArrayList;
import java.awt.BorderLayout;
import java.applet.AppletContext;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class SiteSelector extends JApplet
{
   private HashMap< Object, URL > sites; // site names and URLs
   private ArrayList< String > siteNames; // site names
   private JList siteChooser; // list of sites to choose from

   // read HTML parameters and set up GUI
   public void init()
   {
      sites = new HashMap< Object, URL >(); // create HashMap
      siteNames = new ArrayList< String >(); // create ArrayList

      // obtain parameters from HTML document
      getSitesFromHTMLParameters();

      // create GUI components and layout interface
      add( new JLabel( "Choose a site to browse" ), BorderLayout.NORTH );

      siteChooser = new JList( siteNames.toArray() ); // populate JList
      siteChooser.addListSelectionListener(
         new ListSelectionListener() // anonymous inner class
         {
            // go to site user selected
            public void valueChanged( ListSelectionEvent event )
            {
               // get selected site name
               Object object = siteChooser.getSelectedValue();

               // use site name to locate corresponding URL
               URL newDocument = sites.get( object );

               // get applet container
               AppletContext browser = getAppletContext();

               // tell applet container to change pages
               browser.showDocument( newDocument );
            } // end method valueChanged
         } // end anonymous inner class
      ); // end call to addListSelectionListener

      add( new JScrollPane( siteChooser ), BorderLayout.CENTER );
   } // end method init

   // obtain parameters from HTML document
   private void getSitesFromHTMLParameters()
   {
      String title; // site title
      String location; // location of site
      URL url; // URL of location
      int counter = 0; // count number of sites

      title = getParameter( "title" + counter ); // get first site title

      // loop until no more parameters in HTML document
      while ( title != null )
      {
         // obtain site location
         location = getParameter( "location" + counter );
           
         try // place title/URL in HashMap and title in ArrayList
         {
            url = new URL( location ); // convert location to URL
            sites.put( title, url ); // put title/URL in HashMap
            siteNames.add( title ); // put title in ArrayList
         } // end try
         catch ( MalformedURLException urlException )
         {
            urlException.printStackTrace();
         } // end catch

         counter++;
         title = getParameter( "title" + counter ); // get next site title
      } // end while
   } // end method getSitesFromHTMLParameters
} // end class SiteSelector

/**************************************************************************
* (C) Copyright 1992-2005 by Deitel & Associates, Inc. and               *
* Pearson Education, Inc. 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.                     *
*************************************************************************/
 
TOP

Related Classes of SiteSelector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.