我正在使用一个JFoenix库,我对ComboBox有一个问题。
当我想要setPromtText和setButtonCell时-文本重复。我想更改ButtonCell上的字体大小。
下面是我的代码:
@FXML
private JFXComboBox versionList;
@Override
public void initialize(URL location, ResourceBundle resources) {
versionList.setPromptText("<");
versionList.setButtonCell(new ListCell<String>() {
@Override
protected void updateItem(String version, boolean empty) {
if (empty) {
setText(null);
} else {
setText(version);
setFont(Font.font(15));
}
}
});
}结果我得到了这样的结果:

或者如果提示文本为"Select":

我哪里做错了?提前谢谢。
发布于 2018-02-12 22:08:50
在被覆盖的updateItem(...)方法中,您忽略了调用updateItem(...)的超类实现。根据documentation的说法,这将阻止设置item和empty属性;因此,我怀疑发生的情况是单元格仍然具有empty==true,因此在不应该的时候绘制提示文本。
正确的实现应该是
@Override
public void initialize(URL location, ResourceBundle resources) {
versionList.setPromptText("<");
versionList.setButtonCell(new ListCell<String>() {
@Override
protected void updateItem(String version, boolean empty) {
super.updateItem(version, empty);
if (empty) {
setText(null);
} else {
setText(version);
setFont(Font.font(15));
}
}
});
}https://stackoverflow.com/questions/48747309
复制相似问题