JavaFX 19: невозможно получить столбцы int в редактируемом табличном представлении
Java для меня новинка, и я пытался сделать столбец int редактируемым в TableView в течение 1,5 дней. Я знаю, что здесь существует много примеров, но все они не работают для меня (по какой-то причине). Одним из примеров, который я встречал очень часто, был бы:
colID.setCellFactory(TextFieldTableCell.forTableColumn(новый IntegerStringConverter()));
но это приводит меня к сообщению о несовместимых типах. Мне нужно было бы один раз только короткий пример того, что работает. Кроме того, мне было бы интересно узнать, почему многие примеры, найденные здесь, не работают для меня. Я использую JavaFX19, может ли это быть причиной?
Было бы здорово, если бы кто-нибудь помог мне с этим. Спасибо...
Это мой класс Customer, и я хочу отредактировать столбец ID и метод в моем классе CotrollerClass, вызывающий проблемы в setCellFactory...
общественный класс Клиент {
/**
* Standardkonstruktor
*/
public Customer(){}
/**
* Konstruktor zur Erzeugung gefüllter Customer-Objekte
* @param id ID des Customers
* @param vorName Vorname des Customers
* @param nachName Nachname des Customers
*/
public Customer(int id, String vorName, String nachName){
intID = id;
strVorName = vorName;
strNachName = nachName;
}
public int getID() {
return intID;
}
public void setID(int id) {
this.intID = id;
}
public String getVorName() {
return strVorName;
}
public void setVorName(String vorName) {
this.strVorName = vorName;
}
public String getNachName() {
return strNachName;
}
public void setNachName(String nachName) {
this.strNachName = nachName;
}
// <editor-fold defaultstate="collapsed" desc=" Klassenvariablen ">
private int intID;
private String strVorName;
private String strNachName;
// </editor-fold>
}
private void rebindData(){
tblCustomers.setItems(customers);
colID.setCellValueFactory(new PropertyValueFactory<>("ID"));
colGivenName.setCellValueFactory(new PropertyValueFactory<>("VorName"));
colName.setCellValueFactory(new PropertyValueFactory<>("NachName"));
/************************************************************/
//colID.setCellFactory(TextFieldTableCell.forTableColumn());
/************************************************************/
colID.setCellFactory(TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
//void setCellFactory(Callback<TableColumn<Customer, String>, TableCell<Customer, String>> value) - parameters
//public static <S,T> Callback<TableColumn<S,T>,TableCell<S,T>> forTableColumn(StringConverter<T> converter)
colGivenName.setCellFactory(TextFieldTableCell.forTableColumn());
colGivenName.setOnEditCommit(event-> {
event.getRowValue().setVorName(event.getNewValue());
});
colName.setCellFactory(TextFieldTableCell.forTableColumn());
colName.setOnEditCommit(event-> {
event.getRowValue().setNachName(event.getNewValue());
});
tblCustomers.refresh();
}