je veux modifier la valeur de la cellule sélectionnée dans un jtable
je veux modifier la valeur de la cellule sélectionnée dans un jtable
sans certitude tu peux faire ceci :
où getJt_afficherDonnee() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 pp.getJt_afficherDonnee().setValueAt(ta valeur,ligne, colonne)
pp est une instance de ta frame où tu appel la méthode qui te retourne ta JTable et tu modifie la valeur de la cellule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public JTable getJt_afficherDonnee() { if(jt_afficherDonnee == null) { //declaration de la matrice contenant tout les produits Object[][] produit = new Object[listeProduit.getListeProduit().size()][5]; //on affecte les produit au differente ligne de la JTable for(int i=0;i<listeProduit.getListeProduit().size();i++) { produit[i][0] = listeProduit.getListeProduit().get(i).getNom(); produit[i][1] = listeProduit.getListeProduit().get(i).getNumero(); produit[i][2] = listeProduit.getListeProduit().get(i).getQuantite(); produit[i][3] = listeProduit.getListeProduit().get(i).getPrix(); produit[i][4] = listeProduit.getListeProduit().get(i).getPrixTotal(); } //création du JTable jt_afficherDonnee = new JTable(produit,nomColonneJTable); } return jt_afficherDonnee; }
Bonjour,
il faut déjà indiquer à la JTable si la cellule est éditable. Cela se passe dans la méthode surchargée de la classe gérant votre JTable:Ensuite, normalement la programme passera par la méthode surchargée setValueAt()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @Override public boolean isCellEditable( int ligne, int colonne ) { if( colonne == 2 ) // Par exemple, mais cela pourrait être une autre colonne return true; return false; // Champs non-modifiables }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Override public void setValueAt( Object oValeur, int ligne, int colonne ) { // Traitement pour entrer la valeur dans votre base de donnée // et éventuellement calculer d'autres valeurs qui en dépendent /.../ // Prévient la JTable que les données ont été modifiées fireTableRowsUpdated( ligne, ligne); }
Partager