如何在 JavaFX 中向节点添加颜色?
javafxobject oriented programmingprogramming更新于 2025/4/14 17:37:17
您可以使用 setFill() 和 setStroke() 方法将颜色应用于 JavaFX 中的节点。setFill() 方法将颜色添加到节点的表面区域,而 setStroke() 方法将颜色应用于节点的边界。
这两种方法都接受 javafx.scene.paint.Paint 类的对象作为参数。它是用于用颜色填充形状和背景的颜色和渐变的基类。
JavaFX 中的 javafx.scene.paint.Color 类是 Paint 的子类,它将 RGB 颜色空间中的所有颜色封装起来(作为其属性)。
要将颜色应用于几何形状或背景或形状的描边,您需要通过传递表示所需颜色的 Color 对象来调用相应的方法。
示例
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.stage.Stage; import javafx.scene.shape.Circle; import javafx.scene.shape.Ellipse; import javafx.scene.shape.Polygon; import javafx.scene.shape.Rectangle; public class ColorExample extends Application { public void start(Stage stage) { //绘制一个圆形 圆形 circle = new Circle(75.0f, 65.0f, 40.0f ); //绘制一个矩形 矩形 rect = new Rectangle(150, 30, 100, 65); //绘制一个椭圆形 椭圆形 ellipse = new Ellipse(330, 60, 60, 35); //绘制多边形 Polygon poly = new Polygon(410, 60, 430, 30, 470, 30, 490, 60, 470, 100, 430, 100 ); //按名称着色 circle.setFill(Color.CHOCOLATE); circle.setStrokeWidth(5); circle.setStroke(Color.DARKRED); //使用 RGB rect.setFill(Color.rgb(150, 0, 255)); rect.setStrokeWidth(5); rect.setStroke(Color.DARKRED); //使用 HSB ellipse.setFill(Color.hsb(50, 1, 1)); ellipse.setStrokeWidth(5); ellipse.setStroke(Color.DARKRED); //使用 web poly.setFill(Color.web("#E9967A")); poly.setStrokeWidth(5); poly.setStroke(Color.DARKRED); //设置舞台 Group root = new Group(circle, ellipse, rect, poly); Scene scene = new Scene(root, 600, 150); stage.setTitle("Setting Colors"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }