当前位置: 首页 > 知识库问答 >
问题:

JavaFX ComboBox-选择后显示不同的文本

农均
2023-03-14

我有一个ComboBox,我正在用Sheet对象值填充它。

我设置了一个单元格工厂,以便在下拉列表中显示工作表的名称。它工作正常(似乎如此)。

问题是,选择项目(“单元格”)后,框中显示的值不是列表中显示的值。

这是相关的代码部分:

excelFile = new ExcelFile(file);            
//ObservableList<String> sheets = FXCollections.observableArrayList(excelFile.getSheetsNames());
ObservableList<Sheet> sheets = FXCollections.observableArrayList(excelFile.getSheets());

sheetsBox.setItems(sheets);
sheetsBox.setDisable(false);            

sheetsBox.setCellFactory(new Callback<ListView<Sheet>, ListCell<Sheet>>() {
    @Override
    public ListCell<Sheet> call(ListView<Sheet> param) {
        return new ListCell<Sheet>() {
            @Override
            protected void updateItem(Sheet item, boolean empty) {
                super.updateItem(item, empty);

                if (empty || item == null) {
                    setText(null);
                    setGraphic(null);
                } else {
                    setText(item.getSheetName());
                }
            }        
        };
    }
});

共有1个答案

百里沛
2023-03-14

用于显示选定项目的单元格是按钮单元格。因此,您只需要为按钮单元格设置相同的单元格。您可以将单元格创建分解为一种方法以避免复制代码

sheetsBox.setCellFactory(lv -> createSheetCell());
sheetsBox.setButtonCell(createSheetCell());

// ...

private ListCell<Sheet> createSheetCell() {
    return new ListCell<Sheet>() {
        @Override
        protected void updateItem(Sheet item, boolean empty) {
            super.updateItem(item, empty);

            if (empty || item == null) {
                setText(null);
                setGraphic(null);
            } else {
                setText(item.getSheetName());
            }
        }        
    };
}
 类似资料:
  • Jenkins想添加一个参数。列表是固定的,但我希望dropbox显示自定义值,而不是实际值(类似于网页的名称,而不是其URL)。 在某些情况下,这是文件,但是,我想显示模块名,而不是完整路径。举个例子: 感谢您的帮助提前!

  • 问题内容: 我有一个表格可以 浏览并选择一个文件。 我要做的是在选择图像后立即显示该图像。而且这是在按下表单上的“提交”按钮之前,因此图像几乎可以肯定位于客户端。能做到吗? 问题答案: 干得好: HTML 脚本:

  • 我使用此代码在表单中设置select。 我检查时的html部分似乎具有适当的值,并将文本放在那里。 但是在屏幕上,选择框是空的,不显示文本。 我也试图将文本放在跨度选项中,但它也不起作用

  • 我有上传文档按钮,从那里我可以上传图像,文档,pdf文件和EXCEL。我想显示这些选定文件的预览。 我能够显示预览的图像和PDF文件,但不知道如何显示预览,如果文件是文档或excel文件。 下面是显示文件预览的通用代码。 超文本标记语言代码是: JS代码是: 如果选择的文件是PDF和/或图像,但不适用于doc或excel文件,则此代码可以正常工作。任何想法如何显示文档和excel文件的预览?

  • 我正在尝试编写一些相当基本的代码,但多年来没有接触过JavaScript,我真的不确定最好的方法是什么。 目标:有一个42个竞技场部分数字的下拉列表,当选择这些数字时,将根据该数字显示“红色”或“黑色”。为了提供过多信息,部分编号是: 黑色:103, 105, 107, 111, 113, 115, 119, 121, 123, 127, 129, 131, 201, 203, 205, 207,

  • 我正在使用AutoCompleteTextView进行地址建议。 我想做的是当用户输入地址(f. e.“Ma”)时,建议会显示为“Mary, Madley, Ma…”。 然后,当用户选择其中一个建议时,他会立即获得另一个包含整个地址的建议。 例如:他选择了“玛丽”,他得到了像“玛丽123,波士顿”、“玛丽1566,纽约”、“玛丽简569,纽约”这样的建议。 问题是建议填写了适配器,但没有显示。选择