HOWTO · Java

如何在 JavaFX 中繪製矩形

本教程演示瞭如何在 JavaFX 中繪製矩形。

本頁內容

在 JavaFX 中建立 Rectangle,設定位置、大小、填滿色彩與描邊,再將它加入由 Stage 顯示的 Scene。此形狀使用場景的座標系統,原點位於左上角。以下的 JavaFX 呼叫與屬性名稱示範如何在 JavaFX 專案中設定矩形。此範例環境所配置的 Java 執行環境未包含 JavaFX,因此無法在此編譯或執行圖形應用程式。

在 JavaFX 中繪製矩形

Rectangle 類別位於 javafx.scene.shape 套件中。x 和 y 屬性指定左上角的位置,width 和 height 則指定尺寸。這些屬性的值為 double。例如,大小為 800 × 400 個單位的場景,可以放置一個位置為 (200, 100)、寬度為 400、高度為 200 的矩形。

屬性 設定方法 說明
x setX(double) 左上角的水平位置。
y setY(double) 左上角的垂直位置。
width setWidth(double) 矩形寬度。
height setHeight(double) 矩形高度。
arcWidth setArcWidth(double) 用來將角變圓的水平直徑。
arcHeight setArcHeight(double) 用來將角變圓的垂直直徑。

JavaFX 範例會使用 rectangle.setX(200)、rectangle.setY(100)、rectangle.setWidth(400) 和 rectangle.setHeight(200)。使用 rectangle.setFill(Color.BLUE) 設定內部填滿色彩,並以 rectangle.setStroke(Color.LIGHTBLUE) 設定外框;rectangle.setStrokeWidth(8) 則控制外框粗細。將形狀加入 Group,建立具有所需尺寸與背景色彩的 Scene,再將場景指定給 Stage,並在應用程式的 start 方法中呼叫 stage.show()。類別需繼承 Application,並在 main 方法中呼叫 launch(args)。請在建置或啟動設定已提供 JavaFX 模組的 JavaFX 專案中執行此版本。

接下來的可執行 Java2D 程式會在記憶體中的影像繪製相同幾何圖形,並回報取樣位置的填滿色彩。它用來獨立示範位置與尺寸,不會執行或顯示 JavaFX 場景。

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

public class DrawRectangle {
    public static void main(String[] args) {
        System.setProperty("java.awt.headless", "true");
        BufferedImage image = new BufferedImage(800, 400, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics = image.createGraphics();
        graphics.setColor(Color.BLUE);
        graphics.fillRect(200, 100, 400, 200);
        graphics.dispose();

        Color sample = new Color(image.getRGB(250, 150));
        System.out.printf("Rectangle: x=%d, y=%d, width=%d, height=%d%n", 200, 100, 400, 200);
        System.out.printf("Sample fill: #%02X%02X%02X%n", sample.getRed(), sample.getGreen(), sample.getBlue());
    }
}
Rectangle: x=200, y=100, width=400, height=200
Sample fill: #0000FF

若要將 JavaFX 形狀的角調整為圓角,請在設定尺寸後設定兩個弧度屬性:rectangle.setArcWidth(40) 和 rectangle.setArcHeight(40)。setArcWidth 控制水平方向的曲線直徑,setArcHeight 控制垂直方向的曲線直徑。兩者設為相同值時,角的弧度一致;設為不同值時,曲線會呈現較長的形狀。這些設定只會影響矩形的角,位置、整體尺寸、填滿色彩與外框設定則維持不變。