标题说明了一切。我想更改不可编辑combobox
的提示文字的颜色,以便文字与可编辑combobox
的提示文字具有相同的颜色。
在我的CSS文件中,我尝试在-fx-prompt-text-fill
,.combo-box
,.combo-box-base
和.combo-box-base .text-field
中使用.combo-box-base .text-input
,但没有任何效果。
我必须使用哪种款式?
答案 0 :(得分:7)
如果ComboBox
不可编辑,则没有TextField
,并且属性-fx-prompt-text-fill
不再有效,因为显示的控件是ListCell
,不要TextInputControl
。
为了设置此单元格的样式,我们可以提供自定义样式ListCell
:
@Override
public void start(Stage primaryStage) {
ComboBox comboBox = new ComboBox();
comboBox.getItems().addAll("Item 1", "Item 2", "Item 3");
comboBox.setPromptText("Click to select");
comboBox.setEditable(false);
comboBox.setButtonCell(new ListCell(){
@Override
protected void updateItem(Object item, boolean empty) {
super.updateItem(item, empty);
if(empty || item==null){
// styled like -fx-prompt-text-fill:
setStyle("-fx-text-fill: derive(-fx-control-inner-background,-30%)");
} else {
setStyle("-fx-text-fill: -fx-text-inner-color");
setText(item.toString());
}
}
});
Scene scene = new Scene(new StackPane(comboBox), 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
答案 1 :(得分:1)
嗨我相信我提供了更好的解决方案
第一
在CSS文件中创建以下
.input .text-field {
-fx-prompt-text-fill: #a0a0a0; // or any color you want
}
比在场景构建器中设置你的组合框类在附加CSS文件后输入
这对我来说就像一个骗局