我几天一直在抨击我的大脑,但是我无法在Google上找到问题的直接答案。有很多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(...)
,但它并没有真正提供理想的预期效果。
编辑::为了清楚起见this是我的目标(参见#3)。我尝试了CSS,但它没有用。
现在控制的外观是正确的:
答案 0 :(得分:0)
您可以使用Lighting
效果,此处是指向Oracle tutorial on lighting的链接。
效果无法通过Java 8中的CSS应用。您可以在代码中或通过xml应用它。
您可以在节点的hover property上添加一个侦听器,通过将节点效果设置为null来关闭灯光,并通过将节点效果设置为您的灯光来打开它。
JavaFX javadoc on Lighting中有示例代码,我刚刚在这里转载:
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);
投影也会起作用,并且可能还有其他方法可以实现您想要的效果,但结果略有不同。