2016-11-14 9 views
0

Ich habe dieses Modell:ComboBoxTableCell zeigt nicht ComboBox in JavaFX

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; 
} 

} 

ich eine Tabellenzeile zu haben, versuchen [String - String - ComboBox mit Strings]. So habe ich die Tabelle wie folgt auf:

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")); 

Aber als Ergebnis habe ich keine ComboBox in der dritten Spalte sehen, die die Werte „1“ enthalten soll, und „3“. Stattdessen sehe ich:

enter image description here

Was mir fehlt die ComboBox-Show bis zu machen? Vielen Dank!

Antwort

0

fand ich den Fehler: Ich habe vergessen

mappingTable.setEditable(true); 

Dank gesetzt!

Verwandte Themen