
- JavaFX 教程
- JavaFX - 首頁
- JavaFX - 概述
- JavaFX 安裝和架構
- JavaFX - 環境
- JavaFX - 使用 NetBeans 安裝
- JavaFX - 使用 Eclipse 安裝
- JavaFX - 使用 Visual Studio Code 安裝
- JavaFX - 架構
- JavaFX - 應用程式
- JavaFX 二維圖形
- JavaFX - 二維圖形
- JavaFX - 繪製直線
- JavaFX - 繪製矩形
- JavaFX - 繪製圓角矩形
- JavaFX - 繪製圓形
- JavaFX - 繪製橢圓
- JavaFX - 繪製多邊形
- JavaFX - 繪製折線
- JavaFX - 繪製三次貝塞爾曲線
- JavaFX - 繪製二次貝塞爾曲線
- JavaFX - 繪製弧形
- JavaFX - 繪製 SVG 路徑
- JavaFX 二維物件的屬性
- JavaFX - 描邊型別屬性
- JavaFX - 描邊寬度屬性
- JavaFX - 描邊填充屬性
- JavaFX - 描邊屬性
- JavaFX - 描邊線連線屬性
- JavaFX - 描邊斜接限制屬性
- JavaFX - 描邊線端點屬性
- JavaFX - 平滑屬性
- JavaFX 路徑物件
- JavaFX - 路徑物件
- JavaFX - LineTo 路徑物件
- JavaFX - HLineTo 路徑物件
- JavaFX - VLineTo 路徑物件
- JavaFX - QuadCurveTo 路徑物件
- JavaFX - CubicCurveTo 路徑物件
- JavaFX - ArcTo 路徑物件
- JavaFX 顏色和紋理
- JavaFX - 顏色
- JavaFX - 線性漸變圖案
- JavaFX - 徑向漸變圖案
- JavaFX 文字
- JavaFX - 文字
- JavaFX 效果
- JavaFX - 效果
- JavaFX - 顏色調整效果
- JavaFX - 顏色輸入效果
- JavaFX - 圖片輸入效果
- JavaFX - 混合效果
- JavaFX - 光暈效果
- JavaFX - 輝光效果
- JavaFX - 方框模糊效果
- JavaFX - 高斯模糊效果
- JavaFX - 運動模糊效果
- JavaFX - 反射效果
- JavaFX - 棕褐色效果
- JavaFX - 陰影效果
- JavaFX - 投影陰影效果
- JavaFX - 內陰影效果
- JavaFX - 光照效果
- JavaFX - 平行光源效果
- JavaFX - 聚光燈效果
- JavaFX - 點光源效果
- JavaFX - 位移貼圖
- JavaFX - 透視變換
- JavaFX 動畫
- JavaFX - 動畫
- JavaFX - 旋轉動畫
- JavaFX - 縮放動畫
- JavaFX - 平移動畫
- JavaFX - 淡入淡出動畫
- JavaFX - 填充動畫
- JavaFX - 描邊動畫
- JavaFX - 順序動畫
- JavaFX - 並行動畫
- JavaFX - 暫停動畫
- JavaFX - 路徑動畫
- JavaFX 圖片
- JavaFX - 圖片
- JavaFX 三維圖形
- JavaFX - 三維圖形
- JavaFX - 建立長方體
- JavaFX - 建立圓柱體
- JavaFX - 建立球體
- JavaFX 事件處理
- JavaFX - 事件處理
- JavaFX - 使用便捷方法
- JavaFX - 事件過濾器
- JavaFX - 事件處理程式
- JavaFX UI 控制元件
- JavaFX - UI 控制元件
- JavaFX - 列表檢視
- JavaFX - 手風琴
- JavaFX - 按鈕欄
- JavaFX - 選擇框
- JavaFX - HTML 編輯器
- JavaFX - 選單欄
- JavaFX - 分頁
- JavaFX - 進度指示器
- JavaFX - 滾動窗格
- JavaFX - 分隔符
- JavaFX - 滑塊
- JavaFX - 微調器
- JavaFX - 分割窗格
- JavaFX - 表格檢視
- JavaFX - 標籤頁窗格
- JavaFX - 工具欄
- JavaFX - 樹檢視
- JavaFX - 標籤
- JavaFX - 複選框
- JavaFX - 單選按鈕
- JavaFX - 文字欄位
- JavaFX - 密碼欄位
- JavaFX - 檔案選擇器
- JavaFX - 超連結
- JavaFX - 工具提示
- JavaFX - 警報
- JavaFX - 日期選擇器
- JavaFX - 文字區域
- JavaFX 圖表
- JavaFX - 圖表
- JavaFX - 建立餅圖
- JavaFX - 建立折線圖
- JavaFX - 建立面積圖
- JavaFX - 建立條形圖
- JavaFX - 建立氣泡圖
- JavaFX - 建立散點圖
- JavaFX - 建立堆疊面積圖
- JavaFX - 建立堆疊條形圖
- JavaFX 佈局面板
- JavaFX - 佈局面板
- JavaFX - HBox 佈局
- JavaFX - VBox 佈局
- JavaFX - BorderPane 佈局
- JavaFX - StackPane 佈局
- JavaFX - TextFlow 佈局
- JavaFX - AnchorPane 佈局
- JavaFX - TilePane 佈局
- JavaFX - GridPane 佈局
- JavaFX - FlowPane 佈局
- JavaFX CSS
- JavaFX - CSS
- JavaFX 多媒體
- JavaFX - 處理多媒體
- JavaFX - 播放影片
- JavaFX 有用資源
- JavaFX - 快速指南
- JavaFX - 有用資源
- JavaFX - 討論
JavaFX - 路徑物件
在之前的二維圖形章節中,我們已經學習瞭如何透過例項化類並設定相應的引數來繪製一些簡單的預定義圖形。
但是,僅這些預定義圖形不足以構建比 javafx.shape 包 提供的基本圖形更復雜的圖形。
例如,如果您想繪製如下所示的圖形元素,則不能依賴於這些簡單的圖形。即使您成功地使用直線圖形構建它,程式也會變得過於複雜和低效。

為了提高效率,JavaFX 引入了一個名為路徑的概念,其中多條邊將一系列頂點連線在一起。
Path 類
為了繪製這種複雜的結構,JavaFX 提供了一個名為 Path 的類。此類表示圖形的幾何輪廓。
它附加到一個可觀察列表,該列表包含各種 路徑元素 ,例如 moveTo、LineTo、HlineTo、VlineTo、ArcTo、QuadCurveTo、CubicCurveTo。
例項化時,此類將根據給定的路徑元素構造路徑。
您可以在例項化時將路徑元素傳遞給此類,如下所示:
Path myshape = new Path(pathElement1, pathElement2, pathElement3);
或者,您可以獲取可觀察列表並使用 addAll() 方法新增所有路徑元素,如下所示:
Path myshape = new Path(); myshape.getElements().addAll(pathElement1, pathElement2, pathElement3);
您還可以使用 add() 方法單獨新增元素,如下所示:
Path myshape = new Path(); myshape.getElements().add(pathElement1);
MoveTo 路徑元素
路徑元素 MoveTo 用於將路徑的當前位置移動到指定的點。它通常用於設定使用路徑元素繪製的圖形的起點。
它由 javafx.scene.shape 包中的 LineTo 類表示。它具有兩個雙精度資料型別屬性:
X - 從當前位置繪製直線的點的 x 座標。
Y - 從當前位置繪製直線的點的 y 座標。
您可以透過例項化 MoveTo 類並傳遞新點的 x、y 座標來建立一個移動到路徑元素,如下所示:
MoveTo moveTo = new MoveTo(x, y);
如果您沒有向建構函式傳遞任何值,則新點將設定為 (0,0)。
您還可以使用各自的 setter 方法設定 x、y 座標的值,如下所示:
setX(value); setY(value);
示例 - 繪製複雜的路徑
在此示例中,我們將展示如何使用 Path、MoveTo 和 Line 類繪製以下形狀。

將此程式碼儲存在名為 ComplexShape.java 的檔案中。
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 { @Override public void start(Stage stage) { //Creating a Path Path path = new Path(); //Moving to the starting point MoveTo moveTo = new MoveTo(108, 71); //Creating 1st line LineTo line1 = new LineTo(321, 161); //Creating 2nd line LineTo line2 = new LineTo(126,232); //Creating 3rd line LineTo line3 = new LineTo(232,52); //Creating 4th line LineTo line4 = new LineTo(269, 250); //Creating 4th line LineTo line5 = new LineTo(108, 71); //Adding all the elements to the path path.getElements().add(moveTo); path.getElements().addAll(line1, line2, line3, line4, line5); //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 an arc through a 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 檔案。
javac --module-path %PATH_TO_FX% --add-modules javafx.controls ComplexShape.java java --module-path %PATH_TO_FX% --add-modules javafx.controls ComplexShape
輸出
執行後,上述程式將生成一個 JavaFX 視窗,顯示以下輸出:

以下是 JavaFX 提供的各種路徑元素(類)。這些類存在於 javafx.shape 包中。所有這些類都繼承 PathElement 類。
序號 | 形狀和描述 |
---|---|
1 |
LineTo
路徑元素 line 用於從當前位置到指定座標中的點繪製一條直線。它由名為 LineTo 的類表示。此類屬於 javafx.scene.shape 包。 |
2 |
HlineTo
路徑元素 HLineTo 用於從當前位置到指定座標中的點繪製一條水平線。它由名為 HLineTo 的類表示。此類屬於 javafx.scene.shape 包。 |
3 |
VLineTo
路徑元素 垂直線 用於從當前位置到指定座標中的點繪製一條垂直線。它由名為 VLineTo 的類表示。此類屬於 javafx.scene.shape 包。 |
4 |
QuadCurveTo
路徑元素二次曲線用於從當前位置到指定座標中的點繪製一條 二次曲線 。它由名為 QuadraticCurveTo 的類表示。此類屬於 javafx.scene.shape 包。 |
5 |
CubicCurveTo
路徑元素 三次曲線 用於從當前位置到指定座標中的點繪製一條三次曲線。它由名為 CubicCurveTo 的類表示。此類屬於 javafx.scene.shape 包。 |
6 |
ArcTo
路徑元素 Arc 用於從當前位置到指定座標中的點繪製一條弧線。它由名為 ArcTo 的類表示。此類屬於 javafx.scene.shape 包。 |