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
:
58 g.fillOval(X_RIGHT_EYE, Y_RIGHT_EYE, EYE_WIDTH, EYE_HEIGHT);
59 //
Draw Left Eye
:
60
if
(wink)
61 g.drawLine(X_LEFT_EYE, Y_LEFT_EYE,
62 X_LEFT_EYE + EYE_WIDTH, Y_LEFT_EYE);
63
else
64 g.fillOval(X_LEFT_EYE, Y_LEFT_EYE, EYE_WIDTH, EYE_HEIGHT);
65 //
Draw Mouth
:
66 g.drawArc(X_MOUTH, Y_MOUTH, MOUTH_WIDTH, MOUTH_HEIGHT,
67 MOUTH_START_ANGLE, MOUTH_ARC_SWEEP);
68 }
69 }