0

几天来我一直在抨击这个问题,但我在谷歌上找不到这个问题的直接答案。有很多 CSS 的东西,但我真的不知道从一般 CSS 域到 JavaFX CSS 域的交叉(如果有的话,我真的不确定有什么)。

我有一个功能上是按钮的标签。它有 3 个由 CSS 反映的状态:

1:闲置,没什么特别的。2:悬停这是我希望文本出现“凸起”的位置 3:按下:我能够弄清楚这一点。

对于悬停,我有以下 CSS:

.label:hovered{
    //What goes in here to make the text appear embossed (raised) when the cursor 
    //is hovering over it?
}

我已经尝试过了,-fx-effect : innershadow(...)但它并没有真正提供理想的预期效果。

编辑::为了清楚起见,是我要去的(见#3)。我尝试了 CSS,但它不起作用。

因此,控件的外观现在是:

闲置的 悬停 在此处输入图像描述

4

1 回答 1

0

您可以使用Lighting效果,这里是Oracle 光照教程的链接。

灯光

在 Java 8 中无法通过 CSS 应用该效果。您可以在代码中或通过 xml 应用它。

您可以在节点的悬停属性上添加一个侦听器,以通过将节点效果设置为 null 来关闭照明,并通过将节点效果设置为您的照明来打开它。

Lighting 上的 JavaFX javadoc中有示例代码,我刚刚在此处复制了该代码:

Light.Distant light = new Light.Distant();
light.setAzimuth(-135.0);

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

Text text = new Text();
text.setText("JavaFX!");
text.setFill(Color.STEELBLUE);
text.setFont(Font.font(null, FontWeight.BOLD, 60));
text.setX(10.0);
text.setY(10.0);
text.setTextOrigin(VPos.TOP);
text.setEffect(lighting);

阴影也可以使用,并且可能还有其他方法可以实现您想要的效果,所有结果都略有不同。

于 2014-07-22T17:23:15.990 回答