首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX: ComboBox - conflict setButtonCell & setPromptText

JavaFX: ComboBox - conflict setButtonCell & setPromptText
EN

Stack Overflow用户
提问于 2018-02-12 21:11:41
回答 1查看 135关注 0票数 0

我正在使用一个JFoenix库,我对ComboBox有一个问题。

当我想要setPromtText和setButtonCell时-文本重复。我想更改ButtonCell上的字体大小。

下面是我的代码:

代码语言:javascript
复制
@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":

我哪里做错了?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-02-12 22:08:50

在被覆盖的updateItem(...)方法中,您忽略了调用updateItem(...)的超类实现。根据documentation的说法,这将阻止设置itemempty属性;因此,我怀疑发生的情况是单元格仍然具有empty==true,因此在不应该的时候绘制提示文本。

正确的实现应该是

代码语言:javascript
复制
@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));
            }
        }
    });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48747309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档