- java.lang.Object
-
- javafx.scene.paint.Paint
-
- javafx.scene.paint.LinearGradient
-
public final class LinearGradient extends Paint
LinearGradient
类用线性颜色渐变模式填充形状。 用户可以指定两个或多个渐变颜色,并且此“绘画”将在每个颜色之间提供插值。该应用程序提供了一个
Stop
s的数组,指定如何沿渐变分布颜色。Stop#offset
变量的范围必须为0.0到1.0,并且像梯度的关键帧一样起作用。 偏移标记了渐变应该是一个特定的颜色。如果比例变量设置为真,则应该相对于单位平方(0.0-> 1.0)指定渐变的起始点和终点,并且将跨越形状拉伸。 如果比例变量设置为false,则应在形状的局部坐标系中指定起点和终点,并且渐变不会被拉伸。
下面示例中的两个填充矩形将呈现相同的。 左边的一个使用比例坐标来指定渐变的终点。 右边的一个使用绝对坐标。 它们都用从黑色到红色的水平渐变填充指定的矩形
// object bounding box relative (proportional = true) Stop[] stops = new Stop[] { new Stop(0, Color.BLACK), new Stop(1, Color.RED)}; LinearGradient lg1 = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops); Rectangle r1 = new Rectangle(0, 0, 100, 100); r1.setFill(lg1); // user space relative (proportional: = false) LinearGradient lg2 = new LinearGradient(125, 0, 225, 0, false, CycleMethod.NO_CYCLE, stops); Rectangle r2 = new Rectangle(125, 0, 100, 100); r2.setFill(lg2);
- 从以下版本开始:
- JavaFX 2.0
-
-
构造方法摘要
构造方法 Constructor 描述 LinearGradient(double startX, double startY, double endX, double endY, boolean proportional, CycleMethod cycleMethod, List<Stop> stops)
创建一个新的LinearGradient实例。LinearGradient(double startX, double startY, double endX, double endY, boolean proportional, CycleMethod cycleMethod, Stop... stops)
创建一个新的LinearGradient实例。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 boolean
equals(Object obj)
指示一些其他对象是否等于此。CycleMethod
getCycleMethod()
定义了下面的循环方法的被施加到LinearGradient
:CycleMethod.NO_CYCLE
,CycleMethod.REFLECT
,或CycleMethod.REPEAT
。double
getEndX()
定义渐变轴终点的X坐标。double
getEndY()
定义渐变轴终点的Y坐标。double
getStartX()
定义渐变轴起始点的X坐标。double
getStartY()
定义渐变轴起始点的Y坐标。List<Stop>
getStops()
2个或多个Stop
值的序列,指定如何沿梯度分布颜色。int
hashCode()
返回此LinearGradient
对象的哈希码。boolean
isOpaque()
获取此Paint是否完全不透明。boolean
isProportional()
指示开始和结束位置是成比例还是绝对。String
toString()
返回此LinearGradient
对象的字符串表示形式。static LinearGradient
valueOf(String value)
从字符串表示形成线性渐变值。
-
-
-
构造方法详细信息
-
LinearGradient
public LinearGradient(double startX, double startY, double endX, double endY, boolean proportional, CycleMethod cycleMethod, Stop... stops)
创建一个新的LinearGradient实例。- 参数
-
startX
- 渐变轴起始点的X坐标 -
startY
- 渐变轴起始点的Y坐标 -
endX
- 渐变轴终点的X坐标 -
endY
- 渐变轴终点的Y坐标 -
proportional
- 坐标是否与该渐变填充的形状成正比 -
cycleMethod
- 循环方法应用于梯度 -
stops
- 梯度的颜色规格
-
LinearGradient
public LinearGradient(double startX, double startY, double endX, double endY, boolean proportional, CycleMethod cycleMethod, List<Stop> stops)
创建一个新的LinearGradient实例。- 参数
-
startX
- 渐变轴起始点的X坐标 -
startY
- 渐变轴起始点的Y坐标 -
endX
- 渐变轴终点的X坐标 -
endY
- 渐变轴终点的Y坐标 -
proportional
- 坐标是否与该渐变填充的形状成正比 -
cycleMethod
- 应用于梯度的循环方法 -
stops
- 梯度的颜色规格
-
-
方法详细信息
-
getStartX
public final double getStartX()
定义渐变轴起始点的X坐标。 如果比例为真(默认值),此值指定单位平方的点,该点将被缩放以匹配渐变填充的形状的大小。 (- Default value:
- 0.0
- 结果
- 梯度轴起始点的X坐标
-
getStartY
public final double getStartY()
定义渐变轴起始点的Y坐标。 如果比例为真(默认值),此值指定单位平方的点,该点将被缩放以匹配渐变填充的形状的大小。- Default value:
- 0.0
- 结果
- 梯度轴起始点的Y坐标
-
getEndX
public final double getEndX()
定义渐变轴终点的X坐标。 如果比例为真(默认值),此值指定单位平方的点,该点将被缩放以匹配渐变填充的形状的大小。- Default value:
- 1.0
- 结果
- 梯度轴终点的X坐标
-
getEndY
public final double getEndY()
定义渐变轴终点的Y坐标。 如果比例为真(默认值),此值指定单位平方的点,该点将被缩放以匹配渐变填充的形状的大小。- Default value:
- 1.0
- 结果
- 梯度轴终点的Y坐标
-
isProportional
public final boolean isProportional()
指示开始和结束位置是成比例还是绝对。 如果此标志为真,则两个端点在坐标空间中定义,其中[0..1]
范围内的[0..1]
被缩放以映射到渐变填充的形状的边界上。 如果该标志为假,则在该节点的本地坐标系中指定坐标。- Default value:
- 真正
- 结果
- 如果真正的开始和结束位置成比例,否则为绝对值
-
getCycleMethod
public final CycleMethod getCycleMethod()
定义了下面的循环方法的被施加到LinearGradient
:CycleMethod.NO_CYCLE
,CycleMethod.REFLECT
,或CycleMethod.REPEAT
。- Default value:
- NO_CYCLE
- 结果
- 该循环方法应用于该线性梯度
-
getStops
public final List<Stop> getStops()
2个或更多个Stop
值的序列,指定如何沿渐变分布颜色。 这些值必须在0.0到1.0的范围内。 它们像梯度的关键帧一样起作用:它们标示渐变应该是一个特定的颜色。序列中的每个停止位都必须具有大于序列中前一个停止位置的偏移量。
该列表是不可修改的,并将在每次修改尝试时抛出
UnsupportedOperationException
。- Default value:
- 空
- 结果
- 停止值列表
-
isOpaque
public final boolean isOpaque()
获取此Paint是否完全不透明。 不透明的油漆是其任何颜色都没有阿尔法成分的油漆。 油漆可能是不透明的,但是如果不能容易地确定涂料是否实际上是不透明的,则返回假。 例如,ImagePattern可能无法廉价地确定其不透明度。
-
equals
public boolean equals(Object obj)
指示一些其他对象是否等于此。- 重写:
-
equals
在Object
- 参数
-
obj
- 与之比较的参考对象。 - 结果
-
true
如果此对象等于obj
参数;false
否则。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此LinearGradient
对象的哈希码。- 重写:
-
hashCode
在Object
- 结果
-
这个
LinearGradient
对象的哈希码。 - 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
返回此LinearGradient
对象的字符串表示形式。
-
valueOf
public static LinearGradient valueOf(String value)
从字符串表示形成线性渐变值。字符串表示的格式基于线性渐变的JavaFX CSS规范
linear-gradient( [ [from <point> to <point>| [ to <side-or-corner>], ]? [ [ repeat | reflect ], ]? <color-stop>[, <color-stop>]+)
哪里<side-or-corner> = [left | right] || [top | bottom] <point> = [ [ <length> <length> ] | [ <percentage> | <percentage> ] ] <color-stop> = [ <color> [ <percentage> | <length>]? ]
目前的长度只能用px来指定,单位的规格可以不理。 颜色表示的格式是
例子:Color.web(String color)
中使用的格式 。 线性梯度关键字可以被忽略。 有关字符串表示形式的其他信息,请参阅CSS Reference Guide 。LinearGradient g = LinearGradient.valueOf("linear-gradient(from 0% 0% to 100% 100%, red 0% , blue 30%, black 100%)"); LinearGradient g = LinearGradient.valueOf("from 0% 0% to 100% 100%, red 0% , blue 30%, black 100%"); LinearGradient g = LinearGradient.valueOf("linear-gradient(from 0px 0px to 200px 0px, #00ff00 0%, 0xff0000 50%, 0x1122ff40 100%)"); LinearGradient g = LinearGradient.valueOf("from 0px 0px to 200px 0px, #00ff00 0%, 0xff0000 50%, 0x1122ff40 100%");
- 参数
-
value
- 要转换的字符串 - 结果
-
一个
LinearGradient
对象,保存由字符串参数表示的值。 - 异常
-
NullPointerException
- 如果value
是null
-
IllegalArgumentException
- 如果value
无法解析 - 从以下版本开始:
- JavaFX 2.1
-
-