Handling Screen Updates in the paint() Method

The paint() method of any applet is executed when the screen needs to be updated. This situation can be caused by the web browser or operating system outside of the applet obscuring part of an applet window or changing its dimensions in some way. The paint() method also can be called manually within an applet when the screen needs to be updated. If you put a repaint(); statement in an applet, it forces the paint() method to be handled. This statement is a way you can tell the program that you have done something that requires a screen update. For example, if you are writing an animation program and you move an image from one place to another, you need to use repaint(); so the image is shown in its new location. The Revolve applet has a short paint() method:

public void paint(Graphics screen) {
 Graphics2D screen2D = (Graphics2D) screen;
 screen2D.fillRect(0, 0, getSize().width, getSize().height);
 screen2D.drawString(pageTitle[current], 5, 60);
 screen2D.drawString("" + pageLink[current], 5, 80);

The first statement in this method creates a screen2D object that represents the area of the applet window where things such as strings can be drawn. All drawing will be done by calling the methods of this object. The setColor() method of Graphics2D selects the color that will be used for subsequent drawing. The color is set to butterscotch before a rectangle is drawn that fills the entire applet window. Next, the color is set to black and lines of text are displayed on the screen at the (x,y) positions of (5,60) and (5,80). The first line that is displayed is an element of the pageTitle array. The second line displayed is the address of the URL object, which is stored in the pageLink array. The current variable is used to determine which elements of these arrays to display.