Java Reference
In-Depth Information
Display 18.17
An Action Drawing
(part 2 of 3)
36
public static void
main(String[] args)
37
{
38
ActionFace drawing =
new
ActionFace();
39
drawing.setVisible(
true
);
40
}
41
public
ActionFace()
42
{
43
setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
44
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
45
setTitle("Hello There!");
46
setLayout(
new
BorderLayout());
47
getContentPane().setBackground(Color.white);
48
JButton winkButton =
new
JButton("Click for a Wink.");
49
winkButton.addActionListener(
new
WinkAction());
50
add(winkButton, BorderLayout.SOUTH);
51
wink =
false
;
52
}
53
public void
paint(Graphics g)
54
{
55
super
.paint(g);
56
g.drawOval(X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);
57
//Draw Right Eye:
g.fillOval(X_RIGHT_EYE,
Y_RIGHT_EYE,
EYE_WIDTH,
EYE_HEIGHT);
58
59
//Draw Left Eye:
60
if
(wink)
g.drawLine(X_LEFT_EYE,
Y_LEFT_EYE,
61
X_LEFT_EYE + EYE_WIDTH,
Y_LEFT_EYE);
62
63
else
g.fillOval(X_LEFT_EYE,
Y_LEFT_EYE,
EYE_WIDTH,
EYE_HEIGHT);
64
65
//Draw Mouth:
g.drawArc(X_MOUTH,
Y_MOUTH,
MOUTH_WIDTH,
MOUTH_HEIGHT,
66
67
MOUTH_START_ANGLE, MOUTH_ARC_SWEEP);
68
}
69
}