Java Reference
In-Depth Information
The repaint and paint Methods
When you change the graphic's contents in a window and want to update the window so
that the new contents show on the screen, do not call paint ; call repaint . The repaint
method takes care of some overhead and then calls the paint method. Normally, you do not
define repaint . As long as you define the paint method correctly, the repaint method
should work correctly. Note that you often define paint , but you normally do not call paint .
On the other hand, normally you do not define repaint , but you do sometimes call repaint .
Some More Details on Updating a GUI
Most of the changes to a GUI windowing system that we have seen are updated auto-
matically so that they are visible on the screen. This is done by an object known as the
repaint manager . The repaint manager works automatically, and you need not even
be aware of its presence. However, there are a few updates that the repaint manager
will not do for you. You have already learned that you need an invocation of repaint
when your GUI changes the figure drawn in the JFrame as in Display 18.17.
Two other updating methods that you will often see when looking at Swing code
are validate and pack .
Every container class has the method validate , which has no arguments. An invoca-
tion of validate causes the container to lay out its components again. An invocation of
validate is a kind of “update” action that makes changes in the components actually
happen on the screen. Many simple changes that are made to a Swing GUI, like chang-
ing color or changing the text in a text field, happen automatically. Other changes, such
as some kinds of addition of components or changes in visibility, may require an invoca-
tion of validate or some other “update” method. Sometimes it is difficult to decide
whether an invocation of validate is necessary. When in doubt, include an invocation
of validate . Although invoking validate when it is not needed can make your pro-
gram a little less efficient, it will have no other ill effects on your GUI.
The method pack causes the window to be resized, usually to a smaller size, but more pre-
cisely to an approximation of a size known as the preferred size. (Yes, you can change the pre-
ferred size, but we do not have room to cover all of the Swing library in these few chapters.)
We do not have room in this topic to go into all the details of how a GUI is
updated on the screen, but these few remarks may make some code you find in more
advanced topics a little less puzzling.
repaint
manager
validate
pack
18.4
Colors
One colored picture is worth a thousand black and white pictures.
Variation on a Chinese proverb
In this section we tell you how to specify colors for the figures you draw with the graph-
ics methods. We also show you how to define your own colors using the class Color .
Search WWH ::




Custom Search