JavaFX渐变颜色

本文概述

  • 线性渐变
  • 实例方法
  • 建设者
  • 径向渐变
  • 建设者
在计算机图形学中, 渐变色(有时称为Color Progression)用于指定位置相关的颜色以填充特定区域。渐变颜色的值随位置而变化。渐变颜色通过随位置连续变化颜色值而在区域上产生平滑的颜色过渡。
JavaFX使我们能够实现两种类型的渐变颜色过渡:
  1. 线性渐变
  2. 径向渐变
线性渐变 要将线性渐变图案应用于形状, 我们需要实例化LinearGradient类。此类包含下表中描述的几种实例方法。
实例方法
类型 方法 描述
Boolean equals(Object o) 比较两个对象
CycleMethod getCycleMethod() 定义已将哪种循环方法应用于LinearGradient。
Double getEndX() 倾斜轴终点的X坐标
Double getEndY() 倾斜轴终点的Y坐标
Double getStartX() 倾斜轴起点的X坐标
Double getStartY() 倾斜轴起点的Y坐标
List< Stop> getStops() 定义沿渐变的颜色分布方式
Int hashCode() 返回线性渐变对象的哈希码
Boolean isOpaque() 检查涂料是否完全不透明。
Boolean isProprtional() 检查起点和终点位置是否成比例。
String toString() 将Gradient对象转换为字符串。
建设者 此类的构造方法接受五个参数:
新的LinearGradient(startX, startY, endX, endY, Proportional, CycleMethod, stops)
(startX, startY):代表渐变颜色起点的x和y坐标。
(endX, endY):代表渐变颜色终点的x和y坐标。
比例:这是布尔类型的属性。如果为真, 则渐变颜色的起点和终点将成比例。
CycleMethod:定义应用于渐变的循环方法。
停止:定义沿渐变的颜色分布。
例:
package application; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.paint.CycleMethod; import javafx.scene.paint.LinearGradient; import javafx.scene.paint.Stop; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class Shape_Example extends Application {@Overridepublic void start(Stage primaryStage) {VBox root = new VBox(); final Scene scene = new Scene(root, 300, 250); Stop[] stops = new Stop[] { new Stop(0, Color.GREEN), new Stop(1, Color.BLUE)}; LinearGradient linear = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops); Rectangle rect = new Rectangle(0, 0, 100, 100); rect.setFill(linear); root.getChildren().add(rect); primaryStage.setScene(scene); primaryStage.setTitle("Animation Example"); primaryStage.show(); }public static void main(String[] args) {launch(args); } }

JavaFX渐变颜色

文章图片
径向渐变 要将Radial渐变应用于形状, 我们需要实例化javafx.scene.paint.RadialGradient类。此类包含下表中描述的各种实例方法。
类型 方法 描述
Boolean equals(Object o) 比较两个对象
Double getCenterX() 定义渐变的圆的X坐标
Double getCenterY() 定义渐变的圆的Y坐标
CycleMethod getCycleMethod() 定义已将哪种循环方法应用于LinearGradient。
Double getFocusAngle() 渐变中心与映射第一种颜色的位置的焦点之间的角度(以度为单位)
Double getFocusDistance() 渐变中心与第一种颜色的焦点之间的距离。
Double getRadius 渐变半径
List< Stop> getStops() 定义沿渐变的颜色分布方式
Int hashCode() 返回线性渐变对象的哈希码
Boolean isOpaque() 检查涂料是否完全不透明。
Boolean isProprtional() 检查起点和终点位置是否成比例。
String toString() 将Gradient对象转换为字符串。
建设者 【JavaFX渐变颜色】该类的构造函数接受一些参数。构造函数的语法如下。
public RadialGradient(double focusAngle, double focusDistance, double centerX, double centerY, double radius, boolean proportional, CycleMethod cycleMethod, Stops? stops)


package application; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.paint.CycleMethod; import javafx.scene.paint.RadialGradient; import javafx.scene.paint.Stop; import javafx.scene.shape.Circle; import javafx.stage.Stage; public class RadialGradientClass extends Application {public static void main(String[] args) {Application.launch(args); }@Overridepublic void start(final Stage primaryStage) {primaryStage.setTitle("Radial Gradient Example"); Group root = new Group(); Scene scene = new Scene(root, 400, 300, Color.WHITE); primaryStage.setScene(scene); addRectangle(scene); primaryStage.show(); }private void addRectangle(final Scene scene) {Circle C = new Circle(200, 150, 100); RadialGradient gradient1 = new RadialGradient(0, .1, 100, 100, 200, false, CycleMethod.NO_CYCLE, new Stop(0, Color.YELLOW), new Stop(1, Color.RED)); C.setFill(gradient1); final Group root = (Group) scene.getRoot(); root.getChildren().add(C); }}

JavaFX渐变颜色

文章图片

    推荐阅读