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

0 ответов

Другие вопросы по тегам