Java Reference
In-Depth Information
paint directly; instead, the system calls paint whenever it has to redraw the
window —e.g. when the window is brought to the front or when it is moved.
Second, procedure paint has a parameter g of class Graphics . The instance of
class Graphics that is passed as an argument to paint contains the methods that
draw in the window.
Look at the body of paint . The first statement calls procedure g.setColor ,
with argument Color.red . Class Color contains several constants, like
Color.red , that represent various colors. Execution of this call sets the color of
the pen so that anything drawn after this will be red. In the picture shown above,
the part of the circle that is showing would be red on your monitor.
The second procedure call draws an oval that will fit in the square whose
upper left corner is pixel (0, 0) —given by the first two arguments— and whose
width and height are both 40 (the second two arguments). Pixel (0, 0) is the ori-
gin of the window: its upper left corner. Half of the oval that was drawn is hid-
den by the title bar of the window.
We can change the origin by calling method g.translate . For example,
execution of the following statement moves the origin to the right 20 pixels and
down 30 pixels:
Activity 1-5.5
explains pixels
and talks about
the resolution
of a monitor.
g.translate(20, 30);
Better yet, we can change the origin to the pixel right under the title bar by exe-
cuting this procedure call —the two arguments yield the correct number of pix-
els to move:
g.translate(this.getInsets().left,
this.getInsets().top);
If we insert this call as the first statement of method paint and create and
show an instance of class GraphicsFrame , the window will look like this:
import javax.swing.*;
import java.awt.*;
public class GraphicsFrame extends JFrame {
/** Draw a figure in the window accessed by g */
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawOval(0, 0, 40, 40);
}
}
Figure 1.12:
Subclass of JFrame with a method paint
Search WWH ::




Custom Search