home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 July & August / Pcwk78a98.iso / Micrsoft / VJ / VJ98 / VJPROJS / WEBPAGES / APPLETHT / APPLETHT.JAV < prev    next >
Text File  |  1998-02-11  |  3KB  |  119 lines

  1. // Applet1.java
  2.  
  3. import java.awt.*;
  4. import java.applet.*;
  5.  
  6. /**
  7.  * This class reads PARAM tags from its HTML host page and sets
  8.  * the color and label properties of the applet. Program execution
  9.  * begins with the init() method. 
  10.  */
  11. public class Applet1 extends Applet
  12. {
  13.     /**
  14.      * The entry point for the applet. 
  15.      */
  16.     public void init()
  17.     {
  18.         initForm();
  19.  
  20.         usePageParams();
  21.  
  22.         // TODO: Add any constructor code after initForm call.
  23.     }
  24.  
  25.     private    final String labelParam = "label";
  26.     private    final String backgroundParam = "background";
  27.     private    final String foregroundParam = "foreground";
  28.  
  29.     /**
  30.      * Reads parameters from the applet's HTML host and sets applet
  31.      * properties.
  32.      */
  33.     private void usePageParams()
  34.     {
  35.         final String defaultLabel = "Default label";
  36.         final String defaultBackground = "C0C0C0";
  37.         final String defaultForeground = "000000";
  38.         String labelValue;
  39.         String backgroundValue;
  40.         String foregroundValue;
  41.  
  42.         /** 
  43.          * Read the <PARAM NAME="label" VALUE="some string">,
  44.          * <PARAM NAME="background" VALUE="rrggbb">,
  45.          * and <PARAM NAME="foreground" VALUE="rrggbb"> tags from
  46.          * the applet's HTML host.
  47.          */
  48.         labelValue = getParameter(labelParam);
  49.         backgroundValue = getParameter(backgroundParam);
  50.         foregroundValue = getParameter(foregroundParam);
  51.  
  52.         if ((labelValue == null) || (backgroundValue == null) ||
  53.             (foregroundValue == null))
  54.         {
  55.             /**
  56.              * There was something wrong with the HTML host tags.
  57.              * Generate default values.
  58.              */
  59.             labelValue = defaultLabel;
  60.             backgroundValue = defaultBackground;
  61.             foregroundValue = defaultForeground;
  62.         }
  63.  
  64.         /**
  65.          * Set the applet's string label, background color, and
  66.          * foreground colors.
  67.          */
  68.         label1.setText(labelValue);
  69.         label1.setBackground(stringToColor(backgroundValue));
  70.         label1.setForeground(stringToColor(foregroundValue));
  71.         this.setBackground(stringToColor(backgroundValue));
  72.         this.setForeground(stringToColor(foregroundValue));
  73.     }
  74.  
  75.     /**
  76.      * Converts a string formatted as "rrggbb" to an awt.Color object
  77.      */
  78.     private Color stringToColor(String paramValue)
  79.     {
  80.         int red;
  81.         int green;
  82.         int blue;
  83.  
  84.         red = (Integer.decode("0x" + paramValue.substring(0,2))).intValue();
  85.         green = (Integer.decode("0x" + paramValue.substring(2,4))).intValue();
  86.         blue = (Integer.decode("0x" + paramValue.substring(4,6))).intValue();
  87.  
  88.         return new Color(red,green,blue);
  89.     }
  90.  
  91.     /**
  92.      * External interface used by design tools to show properties of an applet.
  93.      */
  94.     public String[][] getParameterInfo()
  95.     {
  96.         String[][] info =
  97.         {
  98.             { labelParam, "String", "Label string to be displayed" },
  99.             { backgroundParam, "String", "Background color, format \"rrggbb\"" },
  100.             { foregroundParam, "String", "Foreground color, format \"rrggbb\"" },
  101.         };
  102.         return info;
  103.     }
  104.  
  105.     Label label1 = new Label();
  106.  
  107.     /**
  108.      * Intializes values for the applet and its components
  109.      */
  110.     void initForm()
  111.     {
  112.         this.setBackground(Color.lightGray);
  113.         this.setForeground(Color.black);
  114.         label1.setText("label1");
  115.         this.setLayout(new BorderLayout());
  116.         this.add("North",label1);
  117.     }
  118. }
  119.