Explain the Stroke Type property of 2D shapes in JavaFX


The stroke type property of a shape specifies the type of its boundary line. You can set the stroke type using the setStrokeType() method of the javafx.scene.shape.Shape class.

JavaFX supports three kinds of strokes represented by three constants of the Enum named StrokeType they are −

  • StrokeType.INSIDE − Draws the boundary inside the shape.

  • StrokeType.OUTSIDE − Draws the boundary outside the shape.

  • StrokeType.CENTERED − Draws the boundary such that the edge of the shape passes through the center of it.

To set a boundary to a shape you need to pass either of these values as a parameter to the setStrokeType()method.

Example

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.scene.shape.StrokeType;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class StrokeTypeExample extends Application {
   public void start(Stage stage) {
      Font font = Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 12);
      Text label1 = new Text("Original Image");
      label1.setFont(font);
      label1.setX(250.0);
      label1.setY(125.0);
      Polygon rhombus1 = new Polygon(300.0, 0.0, 250.0, 50.0, 300.0, 100.0, 350.0, 50.0);
      Text label2 = new Text("Stroke Type: Inside");
      label2.setFont(font);
      label2.setX(25.0);
      label2.setY(275.0);
      Polygon rhombus2 = new Polygon(100.0, 150.0, 50.0, 200.0, 100.0, 250.0, 150.0, 200.0);
      rhombus2.setStroke(Color.BLUE);
      rhombus2.setStrokeWidth(7.0);
      rhombus2.setStrokeType(StrokeType.INSIDE);
      Text label3 = new Text("Stroke Type: Centered");
      label3.setFont(font);
      label3.setX(220.0);
      label3.setY(275.0);
      Polygon rhombus3 = new Polygon(300.0, 150.0, 250.0, 200.0, 300.0, 250.0, 350.0, 200.0);
      rhombus3.setStroke(Color.BLUE);
      rhombus3.setStrokeWidth(7.0);
      rhombus3.setStrokeType(StrokeType.CENTERED);
      Text label4 = new Text("Stroke Type: Outside");
      label4.setFont(font);
      label4.setX(430.0);
      label4.setY(275.0);
      Polygon rhombus4 = new Polygon(490.0, 150.0, 440, 200.0, 490.0, 250.0, 540.0, 200.0);
      rhombus4.setStroke(Color.BLUE);
      rhombus4.setStrokeWidth(7.0);
      rhombus4.setStrokeType(StrokeType.OUTSIDE);
      //Creating a Group object
      Group root = new Group(label1, label2, label3, label4, rhombus1, rhombus2, rhombus3, rhombus4);
      //Creating a scene object
      Scene scene = new Scene(root, 595, 310);
      //Setting title to the Stage
      stage.setTitle("Stroke Type");
      //Adding scene to the stage
      stage.setScene(scene);
      //Displaying the contents of the stage
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

Output

Updated on: 14-Apr-2020

260 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements