JavaFX / CSS:更改ComboBox所选项目的文本颜色

时间:2017-06-21 23:53:39

标签: java css javafx combobox scenebuilder

我正在使用一个名为JFoenix的自定义JavaFX库,它使用Google的Material Design改进了一些JavaFX组件。我特别遇到的问题是改变字符串ComboBox的文本颜色。选择后选择的项目。 This is my before screen, with the item in question circled.

当我从ComboBox(see screenshot here)中选择一个项目时,文本从灰色变为黑色。我希望所选项目中的文本与其他标签的颜色相同。在Scene Builder中添加-fx-text-fill-fx-text-inner-color并不起作用。

我发现唯一可行的解​​决方案是在用户选择一个选项后,使ComboBox可编辑并通过其编辑器设置颜色:

@FXML
private void handleComboBoxFormat() {
     this.mpaaBox.getEditor().setStyle("-fx-text-fill: #eceff1;" + "-fx-background-color: #445566");
}

我不喜欢这个解决方案,因为我不希望ComboBox可以编辑,而且感觉很麻烦。有没有其他方法来编辑文本颜色?谢谢!

2 个答案:

答案 0 :(得分:1)

-fx-text-fill未在组合框中定义。

但是阅读CSS Reference Guide我看到了结构:

.combo-box > .list-view > .list-cell

其中.list-cell定义继承自Labeled的-fx-text-fill

答案 1 :(得分:1)

好的,所以在弄乱@MouseEvent建议的CSS后,我想出了解决方案。

打开弹出窗口时,

.combo-box .list-view .list-cell会影响ComboBox列表中的项目。

.combo-box .list-cell会影响所选项目的标签,这是我无法访问的。