如何使用KeyFrame更改JavaFX Label的textFill?

时间:2018-04-04 17:29:52

标签: java javafx javafx-8

所以我通常理解一个关键帧构造函数接受node属性和所需的结束值。

例如:

  
    

new KeyFrame(Duration.seconds(2),new KeyValue(YourNode.layoutXProperty,75));

  

但是,Label.textFill不存在,getTextFill是一个getter,而不是一个成员变量。有没有办法解决这个问题?

代码的工作方式如下:

  

new KeyFrame(Duration.seconds(2),new KeyValue(YourNode.textFill,Color.GREEN));

1 个答案:

答案 0 :(得分:2)

类型为xxx的JavaFX属性T的方法命名模式为:

public Property<T> xxxProperty() // returns the property itself
public T getXxx() // returns the value of the property
public void setXxx(T x) // sets the value of the property

因此,例如,对于textFill继承自Label的{​​{1}}属性,有一个public ObjectProperty<Paint> textFillProperty()方法,返回实际属性。

所以你需要的只是

Labeled

SSCCE:

new KeyFrame(Duration.seconds(2), new KeyValue(label.textFillProperty(), Color.GREEN))

enter image description here