1
你好,我們試圖在我們的tableView中爲我們的組合框使用一個事件處理程序。 但由於某些原因,事件處理程序無法啓動。經過漫長的搜索,我們仍然沒有找到答案,所以我們絕望。 這裏是我們的代碼:tableView onEditCommit中的Java FX組合框不起作用
//ComboBoxes in Tableview
@FXML
private TableColumn<Presentatie, Dag> dagC;
dagC.setCellValueFactory(new PropertyValueFactory<Presentatie, Dag>("dag"));
dagC.setEditable(true);
dagC.setCellFactory(ComboBoxTableCell.<Presentatie, Dag>forTableColumn(dataD));
EventHandler<TableColumn.CellEditEvent<Presentatie, Dag>> nameEditHandler = new EventHandler<TableColumn.CellEditEvent<Presentatie, Dag>>() {
@Override
public void handle(TableColumn.CellEditEvent<Presentatie, Dag> e) {
Presentatie p = e.getRowValue();
Dag newValue = e.getNewValue();
p.setDag(newValue);
System.out.println("PLEASE");
}
};
dagC.setOnEditCommit(nameEditHandler);
而且我們dataD是FXCollections.observableArrayList。
我們正在與場景製作者合作,這可能是問題嗎?我們在某處閱讀場景構建器不更新事件處理程序。如果是的話,我們需要做些什麼來使這些代碼有效? 請大家幫忙,我們會很感激。
看起來沒錯。組合框是否按預期顯示?請注意,如果您的'Presentatie'類具有'public ObjectProperty dagProperty(){...}'方法,那麼您的'onEditCommit'處理程序是多餘的:'PropertyValueFactory'將負責從單元格項目到屬性。 –