img
This applet generates the window shown here:
The methods stop( ) and destroy( ) are not overridden, because they are not needed by
this simple applet.
Requesting Repainting
As a general rule, an applet writes to its window only when its update( ) or paint( ) method
is called by the AWT. This raises an interesting question: How can the applet itself cause its
window to be updated when its information changes? For example, if an applet is displaying
a moving banner, what mechanism does the applet use to update the window each time this
banner scrolls? Remember, one of the fundamental architectural constraints imposed on an
applet is that it must quickly return control to the run-time system. It cannot create a loop
inside paint( ) that repeatedly scrolls the banner, for example. This would prevent control
from passing back to the AWT. Given this constraint, it may seem that output to your applet's
window will be difficult at best. Fortunately, this is not the case. Whenever your applet needs
to update the information displayed in its window, it simply calls repaint( ).
The repaint( ) method is defined by the AWT. It causes the AWT run-time system to
execute a call to your applet's update( ) method, which, in its default implementation, calls
paint( ). Thus, for another part of your applet to output to its window, simply store the output
and then call repaint( ). The AWT will then execute a call to paint( ), which can display the
stored information. For example, if part of your applet needs to output a string, it can store
this string in a String variable and then call repaint( ). Inside paint( ), you will output the
string using drawString( ).
The repaint( ) method has four forms. Let's look at each one, in turn. The simplest version
of repaint( ) is shown here:
void repaint( )
This version causes the entire window to be repainted. The following version specifies a region
that will be repainted:
void repaint(int left, int top, int width, int height)
Here, the coordinates of the upper-left corner of the region are specified by left and top, and
the width and height of the region are passed in width and height. These dimensions are
specified in pixels. You save time by specifying a region to repaint. Window updates are
costly in terms of time. If you need to update only a small portion of the window, it is more
efficient to repaint only that region.
Calling repaint( ) is essentially a request that your applet be repainted sometime soon.
However, if your system is slow or busy, update( ) might not be called immediately. Multiple
requests for repainting that occur within a short time can be collapsed by the AWT in a
manner such that update( ) is only called sporadically. This can be a problem in many situations,
Search WWH :
Custom Search
Previous Page
Java SE 6 Topic Index
Next Page
Java SE 6 Bookmarks
Home