éditer une TableView<Object[]>
Bonsoir tout le monde!!!!!! SVP j'aimerais savoir comment éditer une tableView.
j'ai une requête SQL du genre:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
public List<Object[]> NotesEtu(String fil,String sem,String ue, Integer anne){
EntityManager em = fab.createEntityManager();
String query;
query ="select e , n from Etudiant e ,Semmestre s,Filiere f,Annscolaire a ,Cours c, Notes n ,Inscription i, Programmerue g \n"
+ "Where s.nomsem = '"+sem+"'\n"
+ "AND f.libelle = '"+fil+"'\n"
+ "AND a.idAnne = "+anne+"\n"
+ "AND c.codecours = '"+ue+"'\n"
+ "AND e.idetu =n.idetu \n"
+ "AND e.idetu =i.idEtudiant \n"
+ "AND n.idetu =i.idEtudiant \n"
+"AND c.idcours =g.cour \n"
+"AND c.idcours =n.idcours \n"
+"AND n.idcours =g.cour\n"
+"AND g.semmestres = s.idsem \n"
+"AND g.filier = f.idfil \n"
+"AND i.fac = f.idfil \n"
+"AND i.fac = g.filier \n"
+"AND a.idAnne =n.annesco \n"
+"AND i.annee = n.annesco \n"
+"AND a.idAnne = i.annee \n";
Query q;
q = em.createQuery(query);
return (List<Object[]>) q.getResultList();
} |
Et ensuite je l'affiche dans ma tableView (private TableView<Object[]> tabNotes;) en fessant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
public void genererNotesNomEeu() {
noteNameEtu.setCellValueFactory(feature -> {
final Object[] value = feature.getValue();
final Etudiant nometu = (Etudiant) value[0];
return new SimpleObjectProperty<>(nometu);
});
notePrrenomEtu.setCellValueFactory(feature -> {
final Object[] value = feature.getValue();
final Etudiant prenom = (Etudiant) value[0];
return new SimpleObjectProperty<>(prenom);
});
note1.setCellValueFactory(feature -> {
final Object[] value = feature.getValue();
final Notes note1 = (Notes) value[1];
return new SimpleObjectProperty<>(note1);
});
note2.setCellValueFactory(feature -> {
final Object[] value = feature.getValue();
final Notes note2 = (Notes) value[1];
return new SimpleObjectProperty<>(note2);
});
noteExamen.setCellValueFactory(feature -> {
final Object[] value = feature.getValue();
final Notes noteE = (Notes) value[1];
return new SimpleObjectProperty<>(noteE);
});
noteNameEtu.setCellFactory(tv -> new TableCell<Object[], Etudiant>() {
public void updateItem(final Etudiant value, final boolean empty) {
super.updateItem(value, empty);
String text = null;
if (!empty && value != null) {
text = value.getNometu();
}
setText(text);
}
});
notePrrenomEtu.setCellFactory(tv -> new TableCell<Object[], Etudiant>() {
public void updateItem(final Etudiant value, final boolean empty) {
super.updateItem(value, empty);
String text = null;
if (!empty && value != null) {
text = value.getPrenometu();
}
setText(text);
}
});
note1.setCellFactory(tv -> new TableCell<Object[], Notes>() {
public void updateItem(final Notes value, final boolean empty) {
super.updateItem(value, empty);
String text = null;
if (!empty && value != null) {
text = "" + value.getDevoire1();
}
setText(text);
}
});
note2.setCellFactory(tv -> new TableCell<Object[], Notes>() {
public void updateItem(final Notes value, final boolean empty) {
super.updateItem(value, empty);
String text = null;
if (!empty && value != null) {
text = "" + value.getDevoire2();
}
setText(text);
}
});
noteExamen.setCellFactory(tv -> new TableCell<Object[], Notes>() {
public void updateItem(final Notes value, final boolean empty) {
super.updateItem(value, empty);
String text = null;
if (!empty && value != null) {
text = "" + value.getExamen();
}
setText(text);
}
});
} |
jusque la tous marche bien et mon tableau s'affiche correctement avec les données mais je n'arrive pas a modifer la valeur d'une cellule mais j'ai ajouter tabNotes.setEditable(true);
voici mon code:
Code:
1 2 3 4 5 6 7 8
|
noteExamen.setOnEditCommit((TableColumn.CellEditEvent<Object[], Notes> t) ->
{
return ( t.getTableView().getItems().get(
t.getTablePosition().getRow())
).setDevoire1(t.getNewValue());
}
); |
le setDevoire1 est souligné par netbeans!!!
je vous en prie aider moi svp