Bonjour à tous,
je sais que le problème a été traité auparavant et qu'il y a des tutos, mais j'ai l'impression que mon cas est un chouya + complexe, du coup je n'arrive pas à combler les blancs dans la logique.
Voila, j'interroge une base de données qui me donne pour chaque entrée disons 10 infos, j'en affiche 5 dans une JTable + 1 colonne de boutons "Valider" : c'est à dire que le bouton est "disable" à la base, on modifie le contenu de la ligne -> le bouton "Valider" devient enable, on clique "Valider" et cela effectue la mise à jour dans la base de données.
http://www.hostingpics.net/viewer.ph...aCollecTab.jpg
La structure :
J'ai une classe "ValiderBtnCell" qui est un JPanel contenant le bouton.
- une classe "ValiderBtnCellRenderer".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class ValiderBtnCell extends JPanel { private JButton validerBtn; public ValiderBtnCell () { validerBtn = new JButton ("Valider"); add(validerBtn); } }
- une classe "ValiderBtnCellEditor".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class ValiderBtnCellRenderer implements TableCellRenderer { public ValiderBtnCellRenderer () { } public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { return (ValiderBtnCell)value; } }
Le soucis : je ne sais pas où placer l'actionPerformed du bouton "Valider", car si je l'écris dans les classes "ValiderBtnCell" ou "ValiderBtnCellEditor" je n'ai plus de visibilité sur les variables de la classe principale, c'est à dire la JFrame qui affiche notamment la JTable et tout le reste. Comment doit-on faire? déclarer en static les variables de la JFrame dont a besoin dans l'actionPerformed d'une autre classe? Ou bien déplacer l'action dans la classe principale?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class ValiderBtnCellEditor extends AbstractCellEditor implements TableCellEditor{//, ActionListener { ValiderBtnCell validerBtn; public ValiderBtnCellEditor() { } public Object getCellEditorValue() { return validerBtn; } public Component getTableCellEditorComponent (JTable table, Object value, boolean isSelected, int row, int column){ return (ValiderBtnCell) value; } }
J'avoue que ce sont des questions de noobs mais je suis un peu paumé dans les JTable, c'est puissant... mais quand on sait comment faire, sinon on se perd dans des pistes invraisemblables lol
Merci à ceux qui auront eu le courage de lire jusque là et de répondre ^^
Je sais pas si c'est très clair?
Partager