【问题标题】:ComboBoxTableCell does not show ComboBox in JavaFXComboBoxTableCell 在 JavaFX 中不显示 ComboBox
【发布时间】:2016-11-14 08:45:15
【问题描述】:

我有这个模型:

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”的组合框。相反,我看到了这个:

为了让 ComboBox 出现,我缺少什么?谢谢!

【问题讨论】:

    标签: javafx combobox


    【解决方案1】:

    我发现错误:我忘了设置

    mappingTable.setEditable(true);
    

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-07
      • 2020-03-24
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多