Javafx 简明教程

JavaFX - HLineTo Path Object

路径元素 HLineTo 用于从当前位置绘制一条水平线到指定坐标中的某个点。

The path element HLineTo is used to draw a horizontal line to a point in the specified coordinates from the current position.

它由一个名为 HLineTo 的类表示。此类属于包 javafx.scene.shape

It is represented by a class named HLineTo. This class belongs to the package javafx.scene.shape.

这个类的属性具有 double 数据类型,即:

This class has a property of the double datatype namely −

  1. X − The x coordinate of the point to which a horizontal line is to be drawn from the current position.

要绘制一条路径元素水平线,您需要向此属性传递一个值。这可以通过在实例化时将其传递给此类的构造函数来完成;或者,通过使用各自的 setter 方法来完成。

To draw a path element horizontal line, you need to pass a value to this property. This can be either done by passing it to the constructor of this class, at the time of instantiation; Or, by using their respective setter methods.

Steps to draw PathElement Horizontal Line

按照以下步骤在 JavaFX 中绘制一条从当前位置到指定点的水平线:

Follow the steps given below to draw a horizontal line to a specified point from the current position in JavaFX.

Step 1: Creating a Path Object

我们首先通过在 Application 类的 start() 方法中实例化 Path 类创建 Path 对象,如下所示:

We first create a Path object by instantiating the Path class within the start() method of Application class as shown below −

public class ClassName extends Application {
   @Override
   public void start(Stage primaryStage) throws Exception {
      //Creating a Path object
      Path path = new Path()
   }
}

Step 2: Setting the Initial Point

创建 MoveTo 路径元素,并将 XY 坐标设置到线条的起点坐标 (100, 150)。可以通过使用类 MoveTo 的方法 setX()setY() 来实现,如下所示:

Create the MoveTo path element and set XY coordinates to starting point of the line to the coordinates (100, 150). This can be done by using the methods setX() and setY() of the class MoveTo as shown below.

//Moving to the starting point
MoveTo moveTo = new MoveTo();
moveTo.setX(100.0f);
moveTo.setY(150.0f);

Step 3: Creating an Object of the Class HLineTo

通过实例化属于包 javafx.scene.shape 名为 HLineTo 的类创建路径元素水平线,如下所示:

Create the path element horizontal line by instantiating the class named HLineTo which belongs to the package javafx.scene.shape as shown below.

//Creating an object of the class HLineTo
HLineTo hLineTo = new HLineTo();

Step 4: Setting Properties to the Horizontal Line Element

指定水平线从当前位置绘制到的点的 x 坐标。可以通过使用 HLineTo 类的 setX() 方法设置属性 x 来实现,如下所示:

Specify the x coordinate of the point to which a horizontal line is to be drawn from the current position. This can be done by setting the property x, using the method setX() of the HLineTo class as shown below.

//Setting the Properties of the horizontal line element
hlineTo.setX(400)

Step 5: Adding Elements to the Observable List of Path Class

在下文中将上一步中创建的路径元素 MoveTo 和 HlineTo 添加到 Path 类的可观察列表,如下所示 -

Add the path elements MoveTo and HlineTo created in the previous steps to the observable list of the Path class as shown below −

//Adding the path elements to Observable list of the Path class
path.getElements().add(moveTo);
path.getElements().add(hlineTo);

Step 6: Launching Application

在创建了 HLineTo 路径对象之后,按照以下步骤正确启动应用程序 -

Once the HLineTo path object is created, follow the given steps below to launch the application properly −

  1. 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.

  2. Then, set the title to the stage using the setTitle() method of the Stage class.

  3. Now, a Scene object is added to the stage using the setScene() method of the class named Stage.

  4. Display the contents of the scene using the method named show().

  5. Lastly, the application is launched with the help of the launch() method.

Example

以下是一个使用 JavaFX 的 Path 类从当前点到指定位置绘制水平线的程序。将代码保存到 HLineToExample.java 命名的文件中。

Following is a program which draws a horizontal line from the current point to a specified position using the class Path of JavaFX. Save this code in a file with the name − HLineToExample.java.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.HLineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;

public class HLineToExample extends Application {
   @Override
   public void start(Stage stage) {
      //Creating an object of the Path class
      Path path = new Path();

      //Moving to the starting point
      MoveTo moveTo = new MoveTo();
      moveTo.setX(100.0);
      moveTo.setY(150.0);

      //Instantiating the HLineTo class
      HLineTo hLineTo = new HLineTo();

      //Setting the properties of the path element horizontal line
      hLineTo.setX(10.0);

      //Adding the path elements to Observable list of the Path class
      path.getElements().add(moveTo);
      path.getElements().add(hLineTo);

      //Creating a Group object
      Group root = new Group(path);

      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);

      //Setting title to the Stage
      stage.setTitle("Drawing a horizontal line");

      //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 HLineToExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls HLineToExample

在执行时,上述程序生成一个显示水平线的 JavaFX 窗口,该水平线从当前位置绘制到指定点,如下所示。

On executing, the above program generates a JavaFX window displaying a horizontal line, which is drawn from the current position to the specified point, as shown below.

drawing horizontal line

Example

在本示例中,我们尝试使用水平线绘制更复杂的路径,即三角形。将代码保存到 HLineToTriangle.java 命名的文件中。

In this example, we are trying to draw a more complex path, i.e. triangle, using the horizontal line. Save this code in a file with the name − HLineToTriangle.java.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.shape.HLineTo;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;

public class HLineToTriangle extends Application {
   @Override
   public void start(Stage stage) {
      //Creating an object of the Path class
      Path path = new Path();

      //Drawing a triangular path
      MoveTo moveTo = new MoveTo();
      moveTo.setX(200.0);
      moveTo.setY(150.0);
      HLineTo hLineTo = new HLineTo();
      hLineTo.setX(100.0);

      MoveTo moveTo2 = new MoveTo();
      moveTo2.setX(100.0);
      moveTo2.setY(150.0);
      LineTo lineTo = new LineTo();
      lineTo.setX(150.0);
      lineTo.setY(50.0);

      MoveTo moveTo3 = new MoveTo();
      moveTo3.setX(150.0);
      moveTo3.setY(50.0);
      LineTo lineTo2 = new LineTo();
      lineTo2.setX(200.0);
      lineTo2.setY(150.0);

      //Adding the path elements to Observable list of the Path class
      path.getElements().add(moveTo);
      path.getElements().add(hLineTo);
      path.getElements().add(moveTo2);
      path.getElements().add(lineTo);
      path.getElements().add(moveTo3);
      path.getElements().add(lineTo2);

      //Creating a Group object
      Group root = new Group(path);

      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);

      //Setting title to the Stage
      stage.setTitle("Drawing a Triangular Path");

      //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 HLineToTriangle.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls HLineToTriangle

在执行时,上述程序生成一个显示三角形的 JavaFX 窗口。

On executing, the above program generates a JavaFX window displaying a triangle.

hlineto triangle