顺利更改JavaFX效果

时间:2017-07-08 05:27:53

标签: java javafx kotlin

是否可以平滑地改变JavaFX中的效果? 我尝试了很多选择,但没有任何作用。

例如 - Java:

12

例如 - Kotlin:

void effectChange(Node node) {
    // Node Effect = ColorAdjust (0.0, 0.0, 0.0, 0.0)
    KeyValue keyValue = new KeyValue(node.effectProperty(), new ColorAdjust(-0.8, 0.0, 0.0, 0.0));
    KeyFrame keyFrame = new KeyFrame(Duration.seconds(2.0), keyValue);
    Timeline timeline = new Timeline(keyFrame);
    timeline.play();
}

1 个答案:

答案 0 :(得分:1)

你正在计时错误的财产。您应该更改效果的属性,而不是更改效果。看一下下一个例子:

    Button btn = new Button("Say 'Hello World'");
    ColorAdjust effect = new ColorAdjust(0.0, 0.0, 0.0, 0.0);
    btn.setEffect(effect);
    btn.setOnAction((ActionEvent event) -> {
        KeyValue keyValue = new KeyValue(effect.hueProperty(), -0.8);
        KeyFrame keyFrame = new KeyFrame(Duration.seconds(2.0), keyValue);
        Timeline timeline = new Timeline(keyFrame);
        timeline.play();
    });