// RandomPix.java (V3.0) // A Java applet to display a random image from a given set of choices. // The image URLs, and a base URL are specified in the PARAM tags of the applet. // Written by Chris Carter, 6th October 1998 // JDK 1.1.7 // Parameter list: // numberOfImages 1 - 4 Number of images to choose between // image1 'name1.jpg', 'name1.gif' Filename of image to load // image2 'name2.jpg', 'name2.gif' Filename of image to load // image3 'name3.jpg', 'name3.gif' Filename of image to load // image4 'name4.jpg', 'name4.gif' Filename of image to load // imageBaseURL Location of image directory (URL) A valid URL // debug true/false Enable debugging data (sent to Java console) import java.awt.*; import java.util.*; public class RandomPix extends java.applet.Applet { Image displayedImage; MediaTracker tracker = new MediaTracker(this); String numberOfImages, image1, image2, image3, image4, imageBaseURL, debug; String imageURL; String[] imageFiles = new String[4]; int randomNumber, numberRange; int whichImageNumber; boolean ENABLE_DEBUG = false; // -------------------------------------------------------- // Stuff in START() is done whenever the applet is started. public void start() { // Handle the parameters the user has passed to the applet numberOfImages = getParameter("numberOfImages"); if (numberOfImages == null) numberRange = 1; else numberRange = Integer.parseInt(numberOfImages); if (numberRange >= 4) numberRange = 4; image1 = getParameter("image1"); if (image1 == null) imageFiles[0] = null; else imageFiles[0] = image1; image2 = getParameter("image2"); if (image2 == null) imageFiles[1] = null; else imageFiles[1] = image2; image3 = getParameter("image3"); if (image3 == null) imageFiles[2] = null; else imageFiles[2] = image3; image4 = getParameter("image4"); if (image4 == null) imageFiles[3] = null; else imageFiles[3] = image4; imageBaseURL = getParameter("imageBaseURL"); if (imageBaseURL == null) imageBaseURL = null; else imageBaseURL = imageBaseURL; debug = getParameter("debug"); ENABLE_DEBUG = (Boolean.valueOf(debug)).booleanValue(); setBackground(Color.white); whichImageNumber = generateRandomInteger(numberRange); imageURL = imageFiles[(whichImageNumber - 1)]; displayedImage = getImage(getCodeBase(), imageBaseURL + imageURL); tracker.addImage(displayedImage,0); try { tracker.waitForID(0); } catch(InterruptedException e) { return; } if (ENABLE_DEBUG) { System.out.println("Applet RandomPix.class: Chris Carter (chris.carter@iee.org)"); System.out.println("-----------------------------------------------------------"); System.out.println("whichImageNumber is " + whichImageNumber); System.out.println("Range is " + numberRange); System.out.println("Base URL: " + imageBaseURL); System.out.println("Image URL: " + imageURL); System.out.println("Image height (pixels): " + displayedImage.getHeight(this)); System.out.println("Image width (pixels): " + displayedImage.getWidth(this)); } } public void paint(Graphics g) { g.drawImage(displayedImage, 0, 0, this); } public int generateRandomInteger(int range) { Random randomNumberObject = new Random(); double randomDouble = randomNumberObject.nextDouble(); // Generate a 'double' random number (0 < 1) randomDouble = Math.floor((range*randomDouble) + 1); // Modify it so between 1 and 'range' randomNumber = (int) randomDouble; // Cast the double value as an int return randomNumber; } // Implementing this method is recommended, it provides info about the applet. public String getAppletInfo() { return "RandomPix applet by Chris Carter (chris.carter@iee.org)"; } public void destroy() { this.removeAll(); } }