Javafx 简明教程
JavaFX - Drawing a Circle
圆是所有点到固定点(圆心)的固定距离(圆的半径)的轨迹。换句话说,圆是一条形成闭合环路的线,其上的每一点都与中心点保持固定距离。
A circle is the locus of all points at a fixed distance (radius of circle) from a fixed point (the centre of circle). In other words, a circle is a line forming a closed loop, every point on which is a fixed distance from a centre point.
圆由两个参数定义,即 −
A circle is defined by two parameters namely −
-
Centre − It is a point inside the circle. All points on the circle are equidistant (same distance) from the centre point.
-
Radius − The radius is the distance from the centre to any point on the circle. It is half the diameter.

Circle in JavaFX
在 JavaFX 中,圆形由名为 Circle 的类表示。此类属于 javafx.scene.shape 包。
In JavaFX, a circle is represented by a class named Circle. This class belongs to the package javafx.scene.shape.
通过实例化此类,你可以在 JavaFX 中创建一个圆形节点。
By instantiating this class, you can create a Circle node in JavaFX.
此类有 3 个双数据类型的属性,分别是:
This class has 3 properties of the double datatype namely −
-
centerX − The x coordinate of the center of a circle.
-
centerY − The y coordinate of the center of a circle.
-
radius − The radius of the circle in pixels.
要绘制一个圆,需要将值传递给这些属性,方法是在实例化时按相同顺序将它们传递给此类的构造函数,或使用设置器方法。
To draw a circle, you need to pass values to these properties, either by passing them to the constructor of this class, in the same order, at the time of instantiation or by using setter methods.
Steps to Draw a Circle
按照以下给出的步骤在 JavaFX 中绘制一个圆形。
Follow the steps given below to draw a Circle in JavaFX.
Step 1: Creating a Circle
可以通过实例化属于包 javafx.scene.shape 的名为 Circle 的类在 JavaFX 中创建一个圆形。整个 JavaFX 代码必须编写在 Application 类的 start() 方法中,如下所示:
You can create a circle in JavaFX by instantiating the class named Circle which belongs to a package javafx.scene.shape. The entire JavaFX code must be written inside the start() method of Application class as shown below −
public class ClassName extends Application {
public void start(Stage primaryStage) throws Exception {
// Creating a circle object
Circle circle = new Circle();
}
}
Step 2: Setting Properties to the Circle
在 start() 方法中,使用各自的设置器方法设置属性 X、Y 和 radius 的值,指定圆心 x、y 坐标以及圆的半径,如下面的代码块所示。
Specify the x, y coordinates of the center of the circle and the radius of the circle by setting the properties X, Y, and radius using their respective setter methods, within the start() method, as shown in the following code block.
circle.setCenterX(300.0f);
circle.setCenterY(135.0f);
circle.setRadius(100.0f);
Step 3: Adding Circle Object to Group
通过将圆形对象作为参数值传递给其构造函数,实例化包 javafx.scene 中的 Group 类,如下所示:
Instantiate the Group class of package javafx.scene, by passing the Circle object as a parameter value to its constructor as follows −
Group root = new Group(circle);
Step 4: Launching Application
创建二维对象后,请按照下面给出的步骤正确启动应用程序:
Once the 2D object is created, follow the given steps below to launch the application properly −
-
Firstly, instantiate the class named Scene by passing the Group object as a parameter value to its constructor. To this constructor, you can also pass dimensions of the application screen as optional parameters.
-
Then, set the title to the stage using the setTitle() method of the Stage class.
-
Now, a Scene object is added to the stage using the setScene() method of the class named Stage.
-
Display the contents of the scene using the method named show().
-
Lastly, the application is launched with the help of the launch() method.
Example
以下是使用 JavaFX 生成圆形的程序。将此代码保存在名为 CircleExample.java 的文件中。
Following is a program which generates a circle using JavaFX. Save this code in a file with the name CircleExample.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.Circle;
public class CircleExample extends Application {
@Override
public void start(Stage stage) {
//Drawing a Circle
Circle circle = new Circle();
//Setting the properties of the circle
circle.setCenterX(300.0f);
circle.setCenterY(135.0f);
circle.setRadius(100.0f);
//Creating a Group object
Group root = new Group(circle);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing a Circle");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
使用以下命令,从命令提示符编译并执行已保存的 java 文件。
Compile and execute the saved java file from the command prompt using the following commands.
javac --module-path %PATH_TO_FX% --add-modules javafx.controls CircleExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls CircleExample
在执行时,上面的程序会生成一个显示圆形的 JavaFX 窗口,如下所示。
On executing, the above program generates a JavaFX window displaying a circle as shown below.

Example
让我们看另一个示例,将圆形绘制成奥运会标志的一部分。将文件命名为 OlympicCircle.java 。
Let us see another example to draw a circle as a part of the Olympics symbol. Name the file as OlympicCircle.java.
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.Circle;
public class OlympicCircle extends Application {
@Override
public void start(Stage stage) {
//Drawing a Circle
Circle circle1 = new Circle(100.0f, 50.0f, 50.0f);
circle1.setStroke(Color.BLUE);
circle1.setFill(Color.WHITE);
Circle circle2 = new Circle(175.0f, 50.0f, 50.0f);
circle2.setStroke(Color.BLACK);
circle2.setFill(Color.WHITE);
Circle circle3 = new Circle(250.0f, 50.0f, 50.0f);
circle3.setStroke(Color.RED);
circle3.setFill(Color.WHITE);
Circle circle4 = new Circle(75.0f, 125.0f, 50.0f);
circle4.setStroke(Color.YELLOW);
circle4.setFill(Color.WHITE);
Circle circle5 = new Circle(150.0f, 125.0f, 50.0f);
circle5.setStroke(Color.GREEN);
circle5.setFill(Color.WHITE);
//Creating a Group object
Group root = new Group();
root.getChildren().addAll(circle1,circle2,circle3,circle4,circle5);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing the Olympics Symbol");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
使用以下命令,从命令提示符编译并执行已保存的 java 文件。
Compile and execute the saved java file from the command prompt using the following commands.
javac --module-path %PATH_TO_FX% --add-modules javafx.controls OlympicCircle.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls OlympicCircle
在执行时,上面的程序会生成一个显示奥运会标志的 JavaFX 窗口,如下所示。
On executing, the above program generates a JavaFX window displaying a olympic symbol as shown below.
