0
我想將一個枚舉值添加到組合框到一個TableView(Javafx)。 我在網上嘗試了多個代碼,但只有一個工作時試圖添加一個編輯事件,由於字符串到Enum轉換問題停止工作。 這是我的代碼:如何將枚舉值加載到TableView中的Combobox Javafx
this.tv_ListUsers_cl_Etat.setCellValueFactory(new PropertyValueFactory<>("etat"));
this.tv_ListUsers_cl_Etat.setCellFactory(TextFieldTableCell.<Utilisateur, Utilisateur.Etat>forTableColumn());
tv_ListUsers_cl_Etat.setOnEditCommit(
(CellEditEvent<Utilisateur, Utilisateur.Etat> t) -> {
if (t.getNewValue().equals("actif")) {
((Utilisateur) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setEtat(User.Etat.Actif);
} else {
((Utilisateur) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setEtat(User.Etat.Bloque);
}
});
其中tv_ListUsers_cl_Etat就是我想要把行政法院的值的列:
private TableColumn<Utilisateur, Utilisateur.Etat> tv_ListUsers_cl_Etat;
Utilisateur.Etat:
public enum Etat {
Actif,Bloque}
PS:此代碼是TextField,而不是Combobox,即使這不起作用了。 這是錯誤的截圖說出來了:
PS:我修改了代碼:
this.tv_ListUsers_cl_Etat.setCellValueFactory(new PropertyValueFactory<>("etat"));
Utilisateur User = new Utilisateur();
this.tv_ListUsers_cl_Etat.setCellFactory(ComboBoxTableCell.<Utilisateur,Utilisateur.Etat>forTableColumn(User.getEtat()));
tv_ListUsers_cl_Etat.setOnEditCommit(
(CellEditEvent<Utilisateur, Utilisateur.Etat> t) -> {
if (t.getNewValue().equals(User.Etat.Actif)) {
((Utilisateur) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setEtat(User.Etat.Actif);
} else {
((Utilisateur) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setEtat(User.Etat.Bloque);
}
});
我的問題是:如何使用Edit Event在Tableview的Combobox中加載Utilisateur.Etat的兩個值?