Java Reference
In-Depth Information
17.2.4
JPanels as graphics panels
Component class
JPanel
has an inherited procedure
paint
, which is used to
draw lines, rectangles, ovals, text, and the like using methods of class
Graphics
.
A
JPanel
can be added to a
JFrame
, just like any other component. The class
shown in Fig. 17.5 extends class
JPanel
, so its instances are components that can
be placed in a
JFrame
.
In the context in which this class
GraphicPanelExample
is expected to be
used, it will be used only for painting. Therefore, an instance of
GraphicPanel
has to set its own size in the constructor, using method
setPreferredSize
.
Other than the call to this method, there is little new in this class.
Procedure
paint
in class
GraphicPanelExample
simply paints the whole
rectangle that makes up the component with color
c
. However, you can change
this procedure to draw whatever you wanted.
The subclass of
JFrame
that is defined in Fig. 17.6 illustrates the use of
JPanel
components. The constructor creates three instances of
GraphicsPanel-
Example
and places them into the content pane of the
JFrame
. All three instances
A footnote on
lesson page 17-
2 discusses this
topic. Also, ob-
tain a copy of
the classes from
page 17-2.
import
java.awt.*;
import
javax.swing.*;
public class
GraphicsPanelExampleLay
extends
JFrame {
/**
Constructor: a frame with title
t
and three
GraphicsPanelExample
s
*/
public
GraphicsPanelExampleLay(String t) {
super
(t);
JPanel cPane=
new
GraphicsPanelExample(50, 50, Color.pink);
JPanel ePane=
new
GraphicsPanelExample(80, 50, Color.green);
JPanel wPane=
new
GraphicsPanelExample(30, 50, Color.yellow);
Container cp= getContentPane();
cp.add(cPane, BorderLayout.CENTER);
cp.add(ePane, BorderLayout.EAST);
cp.add(wPane, BorderLayout.WEST);
pack();
}
}
Figure 17.6:
A class with three
JPanel
s
Figure 17.7:
An instance of the class in Fig. 17.6
Search WWH ::
Custom Search