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

ComboBoxTableCell在JavaFX中不显示ComboBox

陆耀
2023-03-14

我有这个模型:

public class AbstractMappingRow {

private StringProperty abstractService = new SimpleStringProperty();
private StringProperty taskId = new SimpleStringProperty();
private StringProperty taskName = new SimpleStringProperty();

public AbstractMappingRow(String taksNameString, String taskIdString, String abstractServiceString) {
    super();

    this.abstractService = new SimpleStringProperty(abstractServiceString);
    this.taskId = new SimpleStringProperty(taskIdString);
    this.taskName = new SimpleStringProperty(taksNameString);
}
public StringProperty getAbstractService() {
    return abstractService;
}
public void setAbstractService(StringProperty abstractService) {
    this.abstractService = abstractService;
}
public StringProperty getTaskId() {
    return taskId;
}
public void setTaskId(StringProperty taskId) {
    this.taskId = taskId;
}
public StringProperty getTaskName() {
    return taskName;
}
public void setTaskName(StringProperty taskName) {
    this.taskName = taskName;
}

}

我试图有一个表行[String-String-ComboBox with Strings]。所以我像这样设置表格:

    TableColumn<AbstractMappingRow,String> taskIdCol = new TableColumn<>("Task ID");      
    taskIdCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<AbstractMappingRow, String>, ObservableValue<String>>() {
        public ObservableValue<String> call(CellDataFeatures<AbstractMappingRow, String> p) {
            return p.getValue().getTaskId();
        }
     });

    mappingTable.getColumns().add(taskIdCol);

    TableColumn<AbstractMappingRow,String> taskNameCol = new TableColumn<>("Task Name");
    taskNameCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<AbstractMappingRow, String>, ObservableValue<String>>() {
        public ObservableValue<String> call(CellDataFeatures<AbstractMappingRow, String> p) {
            return p.getValue().getTaskName();
        }
     });

    mappingTable.getColumns().add(taskNameCol);

    TableColumn<AbstractMappingRow, String> abstractServiceCol = new TableColumn<>("Abstrakter Dienst");
    abstractServiceCol.setMinWidth( 200 );
    abstractServiceCol.setCellValueFactory(cellData -> cellData.getValue().getAbstractService());
    abstractServiceCol.setCellFactory(ComboBoxTableCell.<AbstractMappingRow, String>forTableColumn(FXCollections.observableArrayList("1", "3"))); 

    mappingTable.getColumns().add(abstractServiceCol);

    mappingTable.getItems().add(new AbstractMappingRow("test", "test", "3"));

但结果是,我在第三列中没有看到任何组合框应该包含值“1”和“3”。相反,我看到的是:

我缺少什么来显示组合框?谢谢

共有1个答案

子车超英
2023-03-14

我发现了一个错误:我忘了设置

mappingTable.setEditable(true);

谢谢

 类似资料:
  • 问题内容: 我有一个Foo类,它仅加载FXML并创建场景。 在FXML中,我将控制器设置为FooController() 然后添加一个MenuButton: 我尝试在FooController中设置menuButton: 但是,尽管为MenuButton设置了所有内容,但它并未在GUI中显示任何CheckMenuItems。 如何在FXML中定义的menuButton中加载这些项目? 问题答案:

  • 我想在JavaFX的ImageView中显示图像。图像应该从SQLite数据库中获取,并在场景加载时显示。我使用以下代码片段从数据库获取代码,并在之前创建的ImageView中显示它。但是图像没有按预期显示。我做错了吗?P. S.我测试了改变路径在两个和当读取文件从目录到。但似乎没有什么奏效。但是当我手动将一个图像文件放在src目录中并尝试读取它时,它就像一个魅力。但是我想展示一张从数据库中提取的

  • 问题内容: 开发需要显示pdf 的桌面应用程序。我了解到(当前版本)不支持pdf查看/显示,我也了解到。 现在,问题: 是否有任何外部组件或库可以在JavaFX中查看pdf?它应该是一个免费软件。 (如果必须使用)如何将其嵌入到我的应用程序中。 问题答案: JPedalFX示例代码和用法 JPedalFX下载提供了有关使用JPedalFX的示例代码。 我有点of脚,但是我只是在这里粘贴从JPeda

  • 大家好,我是JavaFXFXML的初学者,我正在用FXMLTable view进行测试,但是netbeans在我的代码中没有显示任何错误,我无法运行我的GUI应用程序。 这里是我的fxmldocument.fxml代码。 这是一个fxml控制器代码。 这里是Person类代码。(Person.java) 这是主要的table.java代码。 当我运行我的项目时,GUI没有出现,它显示了许多类似的错

  • 我尝试在我的JavaFX应用程序中实现一个TreeView。但不幸的是,没有项目显示,但我找不到一个问题。我搜索了一些例子,并像他们一样做了。 这是我的控制器代码: 我的FXML代码:

  • 我试图在TableView中插入一些值,但它不显示列中的文本,尽管这些列不是空的,因为有三行(与我在TableView中插入的条目数量相同)可单击。 我有一个类“ClientIController”,它是fxml文件的控制器,这些是TableView和TableView的列的声明。 我在initialize()方法中调用了一个名为loadTable()的函数,该函数将内容添加到TableView中