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 展示矩形的位置和尺寸,但不会执行或显示 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 控制曲线的垂直直径。两个值相同会形成均匀的圆角;值不同时,圆角会沿一个方向拉长。这些设置只影响矩形的圆角,位置、整体尺寸、填充色和描边仍按原来的方式配置。