2017-06-21 63 views
0

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

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

惟一可行的办法,我发现是使组合框可编辑,并通过用户后的编辑器设置颜色选择一个选项:

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

,因为我不知道我不喜欢这样的解决方案想要ComboBox是可编辑的,它只是感觉混乱。有没有其他的方式来编辑文字颜色?谢谢!

+0

我认为他们有自己的一套CSS字段,前缀为'-jfx-'。看看他们的网站(我发现很难使用该网站,因为导航覆盖了实际的内容)。 – Mordechai

+0

你说得对,但只有这三个:'-jfx-focus-color','-jfx-unfocus-color'和'-jfx-label-float',其中没有一个能够解决文本问题。 – 8m4c

+0

尝试重点颜色。 – Mordechai

回答

0

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

但看完CSS Reference Guide我看结构:

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

其中.list-cell定义-fx-text-fill继承标记。

+0

刚刚尝试过,并没有奏效。我对CSS语法不是100%熟悉,但这是我使用的:'.combo-box .list-view .list-cell {-fx-text-fill:“#eceff1”; }' – 8m4c

+0

更新:在完成了一点操作之后,我确定'.combo-box .list-view .list-cell'不会影响所选项目的文本,只是组合框列表中的项目。 – 8m4c

0

好的,所以在与@MouseEvent建议的CSS混淆之后,我想出了解决方案。

.combo-box .list-view .list-cell当您打开弹出窗口时会影响ComboBox列表中的项目。

.combo-box .list-cell影响选定项目的标签,这是我在访问时遇到的问题。