javafx.scene.shape gói cung cấp các lớp sử dụng mà bạn có thể vẽ các hình dạng 2D khác nhau, nhưng đây chỉ là các hình dạng nguyên thủy như đường thẳng, hình tròn, đa giác và hình elip, v.v.…
Do đó, nếu bạn muốn vẽ các hình dạng tùy chỉnh phức tạp, bạn cần sử dụng lớp Path.
Lớp đường dẫn
Lớp Path đại diện cho đường viền hình học của một hình dạng và được đính kèm với một danh sách có thể quan sát được chứa các Phần tử Đường dẫn khác nhau như MoveTo, LineTo, HlineTo, VlineTo, ArcTo, QuadCurveTo, CubicCurveTo.
Hàm tạo của lớp này chấp nhận các đối số biến kiểu PathElement và tạo một đường dẫn dựa trên các phần tử đường dẫn đã cho.
Ví dụ
Phần tử đường dẫn MoveTo được sử dụng để di chuyển vị trí hiện tại của đường dẫn đến một điểm được chỉ định và LineTo vẽ một đường thẳng từ tọa độ hiện tại đến tọa độ được chỉ định.
Trong ví dụ sau, chúng tôi đang cố gắng vẽ một hình dạng phức tạp tùy chỉnh bằng cách sử dụng các lớp MoveTo PathTo và Path -
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.scene.shape.LineTo; import javafx.scene.shape.MoveTo; import javafx.scene.shape.Path; public class ComplexShape extends Application { public void start(Stage stage) { //Drawing the shape MoveTo moveTo = new MoveTo(108, 71); LineTo line1 = new LineTo(321, 161); LineTo line2 = new LineTo(126,232); LineTo line3 = new LineTo(232,52); LineTo line4 = new LineTo(269, 250); LineTo line5 = new LineTo(108, 71); //Creating a Path Path path = new Path(moveTo, line1, line2, line3, line4, line5); //Preparing the Stage object Group root = new Group(path); Scene scene = new Scene(root, 600, 300); stage.setTitle("Drawing an arc through a path"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
Đầu ra