一些CSS属性在JavaFX2.1中无法正常工作

一些CSS属性在JavaFX2.1中无法正常工作,css,javafx-2,Css,Javafx 2,我不确定是不是我,因为我没有通过CSS使用正确的属性来设置控件的样式。但今天我测试了一个来自集成应用程序的示例,发现它也不起作用 我发现最难正确设置的是:-fx text fill 要更改标签的文本颜色,例如: #pill-left:selected .label { /* -fx-text-fill: black; */ -fx-text-fill:red; -fx-effect: dropshadow( one-pass-box , white , 0, 0.0 , 0 , 1 );

我不确定是不是我,因为我没有通过CSS使用正确的属性来设置控件的样式。但今天我测试了一个来自集成应用程序的示例,发现它也不起作用

我发现最难正确设置的是:-fx text fill 要更改标签的文本颜色,例如:

#pill-left:selected .label {
 /* -fx-text-fill: black; */
 -fx-text-fill:red;
 -fx-effect: dropshadow( one-pass-box , white , 0, 0.0 , 0 , 1 );
}
不管我在那里放了什么,文本总是使用默认值颜色


我正在使用JavaFX2.1。也许这在2.2中已经修复了,但我想我应该指出这一点,因为这是一个非常基本的问题。

95%确定这是一个bug


您需要使用的工作区域
-fx fill:red
而不是
-fx fill text

好的,经过一些广泛的测试后,我设法使用样式表使其工作

关键是删除.label属性,只使用控件的ID,根据需要附加状态(:hover、:selected等)

    #pill-left {
    -fx-padding: 5;
    -fx-text-fill:red;
    -fx-border-image-source: url("left-btn.png");
    -fx-border-image-slice: 4 4 4 4 fill;
    -fx-border-image-width: 4 4 4 4;
    -fx-border-image-insets: 0;
    -fx-border-image-repeat: stretch;
    -fx-background-color: null !important; 
}

#pill-left:hover, #pill-left:hover:selected { -fx-text-fill:blue; }
#pill-left:selected { 
    -fx-text-fill:green;
    -fx-border-image-source: url("left-btn-selected.png"); }
因为这都是基于直接从集成项目中获取的代码示例,所以我们假设这是正确的。许多程序员会发现他们自己像我在这个问题上做的那样在拉扯头发


无论如何,这是关于如何将样式表与Javafx一起使用的重要一课,在可能的情况下避免使用ID以外的任何东西来指定某些属性,如文本颜色。

betaman发布的示例是一个标签css选择器,-fx文本填充应该适用于标签-fx fill用于形状节点-文本是形状,但标签不是。@jewelsea“应该可以”是的,可能是个bug。但是关于CSS的规范来自JavaFX2.0,所以事情可能已经改变了。也就是说,我的工作服是工作服。(我编辑了我的非bug假设)JavaFXCSS 2.1规范目前位于(这是我获取信息的地方)。@jewelsea重新编辑。无论如何,workaround很好用。@无论我是否尝试过您的解决方法,但它对我无效:(.我发现无法更改标签的颜色,无论是选中还是未选中。您是否尝试过
#药丸剩余。标签{}
仅限。因为我认为没有“:selected”标签或节点的伪类。是的,我已经尝试过了,还有许多其他的事情都没有成功。只是好奇您如何在代码中使用“药丸剩余”?只需使用
.text
而不是
。标签