Source of HappyFace.java


  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: }