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的两个值?