je veux modifier la valeur de la cellule sélectionnée dans un jtable
Version imprimable
je veux modifier la valeur de la cellule sélectionnée dans un jtable
sans certitude tu peux faire ceci :
où getJt_afficherDonnee() :Code:
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 celluleCode:
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:
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:
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); }