📜  JavaFX 颜色(1)

📅  最后修改于: 2023-12-03 15:16:03.850000             🧑  作者: Mango

JavaFX 颜色

JavaFX 是一种用于构建富互联网应用程序(RIA)的框架,具有丰富的多媒体支持。在 JavaFX 中,颜色用于呈现界面元素,包括文字、形状、背景等等。

JavaFX 中的颜色类

JavaFX 提供了一个 javafx.scene.paint.Color 类来代表颜色。这个类包含了四个十六进制数值,分别表示红、绿、蓝和透明度。这四个数值的范围均为 0 到 1。

Color color = Color.rgb(255, 0, 0); // 红色
Color color = Color.rgb(0, 255, 0); // 绿色
Color color = Color.rgb(0, 0, 255); // 蓝色

我们可以使用以下方法来创建一个颜色实例:

Color color = Color.rgb(red, green, blue); // 使用 RGB 值来创建
Color color = Color.web("#FFFFFF"); // 使用十六进制表示法创建
Color color1 = Color.web("#FFFFFF", alpha); // 使用带透明度的十六进制值创建

其中,Color.web()方法使用十六进制表示法来创建颜色实例,第二个参数可以指定透明度。

JavaFX 中的预定义颜色

JavaFX 定义了一些常用的颜色,可以直接使用它们而不必手动创建颜色实例。这些颜色定义在 javafx.scene.paint.Color 类中,以静态成员变量的形式出现,它们的名字就是颜色名,比如 Color.REDColor.BLUEColor.GREEN 等等。

以下是 JavaFX 中的一些预定义颜色:

Color.RED
Color.GREEN
Color.BLUE
Color.YELLOW
Color.ORANGE
Color.PURPLE
Color.BROWN
Color.BEIGE
Color.PINK
Color.BLACK
Color.WHITE
Color.GRAY
Color.LIGHTGRAY
Color.DARKGRAY
JavaFX 中的填充和笔划

在 JavaFX 中,我们可以为形状设置填充和笔划。

设置填充

javafx.scene.shape.Shape 类中,提供了 fill 属性来设置填充颜色。我们可以将一个 Color 对象赋值给该属性来设置填充颜色。

Shape shape = new Rectangle(50, 50);
shape.setFill(Color.RED); // 将形状颜色设置为红色
设置笔划

javafx.scene.shape.Shape 类中,提供了 stroke 属性来设置笔划颜色。我们可以将一个 Color 对象赋值给该属性来设置笔划颜色。同时,还可以使用 strokeWidth 属性来设置笔划宽度。

Shape shape = new Rectangle(50, 50);
shape.setStroke(Color.BLACK); // 将笔划颜色设置为黑色
shape.setStrokeWidth(2); // 将笔划宽度设置为 2
设置渐变填充

JavaFX 还支持渐变填充,使用 javafx.scene.paint.LinearGradientjavafx.scene.paint.RadialGradient 类来实现。这两个类都是 javafx.scene.paint.Paint 的子类,所以可以直接用于填充和笔划中。

LinearGradient linearGradient = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE,
        new Stop(0, Color.WHITE),
        new Stop(0.25, Color.RED),
        new Stop(0.5, Color.YELLOW),
        new Stop(0.75, Color.GREEN),
        new Stop(1, Color.BLUE));
Shape shape = new Rectangle(50, 50);
shape.setFill(linearGradient); // 将矩形填充为渐变

以上代码会创建一个从左到右渐变的渐变填充。

总结

JavaFX 的颜色类提供了方便的颜色创建和管理功能,让我们可以轻松地在 JavaFX 程序中使用颜色。同时,JavaFX 还支持填充和笔划的颜色设置,包括渐变颜色填充。