我希望修改下拉框的CSS样式,以减小提示文本的字体大小。
如何实现?
.combo-box .text-field {
-fx-prompt-text-fill: rgba(255, 0, 0, 0.5) ;
}
.combo-box .text-field:focused {
-fx-prompt-text-fill: transparent ;
}
但我没有看到任何更改其他样式属性的方法。
.combo-box-base .text{
-fx-fill: rgb(130.0, 130.0, 130.0);
}
这将会改变文本框的颜色。你看过这个this了吗?试试这样的操作:
.combo-box .list-view {
-fx-font-size: xxxx;
}
-fx-cell-size
)。请参阅caspian.css
中的相关部分(位于JRE的lib
文件夹中的jfxrt.jar
内)。正如James D所说,这段代码只在特定条件下起作用。
.combo-box .text-field {
-fx-prompt-text-fill: rgba(255, 0, 0, 0.5) ;
}
.combo-box .text-field:focused {
-fx-prompt-text-fill: transparent ;
}
但只有在您激活组合框的可编辑属性时才会生效。
如果您添加
.combo-box-base .text
它甚至将适用于您组合框中的元素
如果您不想让JavaFx中的组合框可编辑,则不要考虑这一点。我认为您需要通过添加PseudoClass并自己激活来自行处理…
或使您的组合框可编辑,但禁止使用键盘
或者您必须从另一个界面框架中选择另一个ComboBox
这些解决方案都是权宜之计,并非终极解决方案,我希望JavaFx开发人员能够改善这一点。
我知道这很老,但可能会对某些人有帮助。
对于默认组合框:
.combo-box{
-fx-prompt-text-fill: #ffffff;
}
对于 JFoenix 组合框:
.jfx-combo-box {
-fx-prompt-text-fill: #ffffff;
}
如果有需要,您也可以为.list-cell
、.label
和.text-field
这些子属性设置样式。
ComboBox<String> comboBox= new ComboBox<String>();
comboBox.setPromptText("Text");
comboBox.setButtonCell(new ListCell<String>(){
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
setStyle("-fx-font-size: 17.0");
if(!(empty || item==null)){
setText(item.toString());
}
}
});
.combo-box .list-cell {
-fx-font-size: xxxx;
}
.combo-box .text-field {...}
。 - James_D