JavaFX颜色

时间:2020-01-09 10:36:35  来源:igfitidea点击:

要在JavaFX中使用颜色,我们需要有JavaFX Paint,Color,ImagePattern,LinearGradient和RadialGradient。 JavaFX Paint类是JavaFX Color,ImagePattern,LinearGradient和RadialGradient类的超类。 JavaFX颜色类都可以在JavaFX包javafx.scene.paint中找到。这是JavaFX颜色类层次结构的外观:

  • 油漆颜色
  • 图像模式
  • 线性渐变
  • 径向渐变

以下各节将对这些类别和颜色效果中的每一个进行说明。

Paint

JavaFX Paint类是JavaFX Color,ImagePattern,LinearGradient和RadialGradient类的超类。我们可以直接使用Paint类从CSS颜色字符串创建Paint实例。有关CSS颜色的更多信息,请参见JavaFX CSS教程。这是一个使用Paint类的静态工厂方法创建JavaFX Paint实例的示例:

Paint paint = Paint.valueOf("blue");

颜色

JavaFX Color类表示纯色(均匀)。要创建JavaFX Color实例,请使用其构造函数。 JavaFX Color构造函数采用4个参数:

  • 红色
  • 绿色
  • 蓝色
  • Alpha透明度

红色,绿色和蓝色参数是最终颜色中使用的红色,绿色和蓝色色调的数量。 Alpha参数(也称为不透明度参数)指定最终颜色的不透明度。每个参数取一个介于0.0和1.0之间的值。

double red   = 1.0;
double green = 0.8;
double blue  = 0.6;
double alpha = 1.0;

Color color = new Color(red, green, blue, alpha);

JavaFX Color类还具有一组静态工厂方法,可以使用各种不同的参数创建Color实例。这些工厂方法显示在下面的JavaFX Color工厂方法示例中:

Color color1  = Color.web("#ff00ff");
Color color2  = Color.web("#ff00ff", 0.5);

Color color3  = Color.rgb(255, 0, 255);
Color color4  = Color.rgb(255, 0, 255, 0.5);

Color color5  = Color.grayRgb(255);
Color color6  = Color.grayRgb(255, 0.5);

Color color7  = Color.hsb(1.0, 0.5, 0.8);
Color color8  = Color.hsb(1.0, 0.5, 0.8, 0.5);

Color color9  = Color.color(1.0, 0.0, 1.0);
Color color10 = Color.color(1.0, 0.0, 1.0, 0.5);

如我们所见,每种方法都有两个版本。一个使用颜色值本身,另一个使用颜色值+ alpha值(不透明度)。

Color.web()方法基于传统的Web颜色代码(同样在CSS Colors中使用)创建Color实例。

Color.rgb()方法根据红色,绿色和蓝色的颜色值创建一个Color实例。

Color.grayRgb()方法创建代表灰色的Color实例。红色,绿色和蓝色将设置为相同的值,从而产生灰色。

Color.hsb()方法基于色相,饱和度和亮度(HSB)创建一个Color实例。有时也称为HSL色相,饱和度和亮度(而不是HSB)。

Color.color()方法创建颜色的方式与标准Color构造器的方式类似。