Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách vẽ hình tùy chỉnh trong JavaFX với lớp Path


Gói javafx.scene.shape cung cấp các lớp để vẽ nhiều hình 2D, nhưng chúng chỉ là các hình nguyên thủy như line, circle, polygon, ellipse, v.v.

Do đó, nếu bạn muốn vẽ các hình tùy chỉnh phức tạp, bạn cần sử dụng lớp Path.

Lớp Path

Lớp Path đại diện cho đường viền hình học của một hình dạng và được gắn với một danh sách quan sát (observable list) chứa các Path Element như MoveTo, LineTo, HLineTo, VLineTo, ArcTo, QuadCurveTo, CubicCurveTo.

Constructor của lớp này chấp nhận các đối số biến đổi kiểu PathElement và xây dựng một path dựa trên các path element cho trước.

Ví dụ

Path Element MoveTo được dùng để di chuyển vị trí hiện tại của path đến một điểm xác định, và LineTo vẽ một đường từ tọa độ hiện tại đến tọa độ chỉ định.

Trong ví dụ sau, chúng ta cố gắng vẽ một hình tùy chỉnh phức tạp sử dụng MoveTo, LineTo và lớp 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) { 
    // Vẽ hình
    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); 
    // Tạo Path
    Path path = new Path(moveTo, line1, line2, line3, line4, line5); 
    // Chuẩn bị Stage
    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); 
  } 
}

Kết quả

Cách vẽ hình tùy chỉnh trong JavaFX với lớp Path