一些CSS属性在JavaFX2.1中无法正常工作
我不确定是不是我,因为我没有通过CSS使用正确的属性来设置控件的样式。但今天我测试了一个来自集成应用程序的示例,发现它也不起作用 我发现最难正确设置的是:-fx text fill 要更改标签的文本颜色,例如:一些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 );
#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
而不是。标签