如何使用CSS将过滤器应用于JavaFX?

时间:2017-03-31 06:25:05

标签: java css user-interface javafx

我一直在摆弄JavaFX和样式表,并试图想出一种方法来操纵图像。我知道CSS中有filter,但JavaFX -fx呢?

我有以下内容:

.root {
    -fx-background-image: url("background.jpg");
    -fx-background-size: cover;
    // -fx-filter: contrast(200%)
}

导入的是:

scene.getStylesheets().add(Class.class.getResource("style.css").toExternalForm());

有没有办法做到这一点,还是有更好的替代Java GUI和更多的控制?普通过滤器:对比度(200%)似乎不适用于JavaFX。

1 个答案:

答案 0 :(得分:1)

实际上,我找到了一种没有CSS的方法。 JavaFX实际上具有可以使用的内置效果。例如,对于照明,您可以使用

import javafx.scene.effect.Light;
import javafx.scene.effect.Lighting;

import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;

然后:

    Light.Distant light = new Light.Distant();

    Lighting lighting = new Lighting(light);
    lighting.setSurfaceScale(5.0);

设置方位角:

DoubleProperty azimuth = new SimpleDoubleProperty(0);
azimuth.bind(value);

从那里,您可以将它应用于任何对象:

light.setAzimuth(azimuth.get());
lighting.setLight(light);
sampletext.setEffect(lighting);

改变"值"方位角被绑定,它应该改变光照。

引用: http://zetcode.com/gui/javafx/effects/