个性化阅读
专注于IT技术分析

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 {

    @Override
    public 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渐变颜色输出1

径向渐变

要将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对象转换为字符串。

建设者

该类的构造函数接受一些参数。构造函数的语法如下。

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);
    }

    @Override
    public 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渐变颜色输出2输出
赞(0)
未经允许不得转载:srcmini » JavaFX渐变颜色

相关推荐

评论 抢沙发

评论前必须登录!