public class HappyFace extends Application
1: import javafx.application.Application;
2: import javafx.scene.canvas.Canvas;
3: import javafx.scene.Scene;
4: import javafx.scene.Group;
5: import javafx.stage.Stage;
6: import javafx.scene.canvas.GraphicsContext;
7: import javafx.scene.shape.ArcType;
8: /**
9: JavaFX Application that displays a happy face.
10: Author: Jane Q. Programmer
11: Revision of Listing 1.2.
12: */
13:
14: public class HappyFace extends Application
15: {
16: public static final int WINDOW_WIDTH = 400;
17: public static final int WINDOW_HEIGHT = 300;
18:
19: public static final int FACE_DIAMETER = 200;
20: public static final int X_FACE = 100;
21: public static final int Y_FACE = 50;
22:
23: public static final int EYE_WIDTH = 10;
24: public static final int EYE_HEIGHT = 20;
25: public static final int X_RIGHT_EYE = 155;
26: public static final int Y_RIGHT_EYE = 100;
27: public static final int X_LEFT_EYE = 230;
28: public static final int Y_LEFT_EYE = Y_RIGHT_EYE;
29:
30: public static final int MOUTH_WIDTH = 100;
31: public static final int MOUTH_HEIGHT = 50;
32: public static final int X_MOUTH = 150;
33: public static final int Y_MOUTH = 160;
34: public static final int MOUTH_START_ANGLE = 180;
35: public static final int MOUTH_DEGREES_SHOWN = 180;
36:
37: public static void main(String[] args)
38: {
39: launch(args);
40: }
41:
42: @Override
43: public void start(Stage primaryStage) throws Exception
44: {
45: Group root = new Group();
46: Scene scene = new Scene(root);
47:
48: Canvas canvas = new Canvas(WINDOW_WIDTH, WINDOW_HEIGHT);
49: GraphicsContext gc = canvas.getGraphicsContext2D();
50: // Draw face outline
51: gc.strokeOval(X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);
52: // Draw eyes
53: gc.fillOval(X_RIGHT_EYE, Y_RIGHT_EYE, EYE_WIDTH, EYE_HEIGHT);
54: gc.fillOval(X_LEFT_EYE, Y_LEFT_EYE, EYE_WIDTH, EYE_HEIGHT);
55: // Draw mouth
56: gc.strokeArc(X_MOUTH, Y_MOUTH, MOUTH_WIDTH, MOUTH_HEIGHT,
57: MOUTH_START_ANGLE, MOUTH_DEGREES_SHOWN, ArcType.OPEN);
58:
59: root.getChildren().add(canvas);
60: primaryStage.setTitle("HappyFace in JavaFX");
61: primaryStage.setScene(scene);
62: primaryStage.show();
63: }
64: }