How to create an Arc using JavaFX?


In general, an arc is a small segment of a curve. In JavaFX it is represented by the javafx.scene.shape.Arc class. This class contains six properties they are −

  • centerX − This property represents the x coordinate of the center of the arc. You can set the value to this property using the setCenterX() method.

  • centerY − This property represents the y coordinate of the center of the arc. You can set the value to this property using the setCenterY() method.

  • radiusX − This property represents the width of the full ellipse of which the current arc is a part of. You can set the value to this property using the setRadiusX() method.

  • radiusY − This property represents the height of the full ellipse of which the current arc is a part of. You can set the value to this property using the setRadiusY() method.

  • startAngle − This property represents the starting angle of the arc in degrees. You can set the value to this property using the setStartAngle() method.

  • length − This property represents the angular extent of the arc in degrees. You can set the value to this property using the setLength() method.

To create a circle you need to −

  • Instantiate this class.

  • Set the required properties using the setter methods or, bypassing them as arguments to the constructor.

  • Add the created node (shape) to the Group object.

Example

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.Arc;
import javafx.scene.shape.ArcType;
public class DrawingArc extends Application {
   public void start(Stage stage) {
      //Drawing a cubic curve
      Arc arc = new Arc();
      //Setting properties to cubic curve
      arc.setCenterX(280);
      arc.setCenterY(230);
      arc.setRadiusX(100);
      arc.setRadiusY(180);
      arc.setStartAngle(45);
      arc.setLength(100);
      arc.setType(ArcType.ROUND);
      //Setting other properties
      arc.setFill(Color.CHOCOLATE);
      arc.setStrokeWidth(8.0);
      arc.setStroke(Color.BROWN);
      //Setting the scene object
      Group root = new Group(arc);
      Scene scene = new Scene(root, 595, 300, Color.BEIGE);
      stage.setTitle("Drawing arc");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

Output

Updated on: 13-Apr-2020

173 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements