Bonjour, voila j'ai une Jtable avec diverses colones.
L'une de ces colones peut prendre 3 valeurs différentes. Je pourrais utiliser 3 colones, mais je trouveque cela donne trop d'nformations à l'écran, trop fouilli.
Bref, pour regler ca de manière ergonomique pour l'utilisateur, j'aimerais intégrer un JComBox au header d'une de mes colones. Mais bah ca ne veut pas, puisque la JComboBox n'est pas un renderer mais un editor. Alors, j'arrive à "gruger" utilisant ceci :
Puis ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class MonHeaderRenderer extends JComboBox implements TableCellRenderer { public MonHeaderRenderer() { } public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) { return this; } }
Mais, si ca m'affiche bien l'image d'un JCombobox, le fait de cliquer dessus ne donne rien du tout. Alors je pourrais continuer à gruger et afficher au dessus une deuxième "vrai" JCombobox, mais bon c'est un peu du rafisolage quand même. Donc si vous aviez une idée, soit pour utiliser une Jcb, soit pour fusioner mes 3 colones en une et pouvoir passer de l'une à l'autre le plus ergonomiquement possible, cela me serait fort utile ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 TableColumn coloneCodeModalite = this.getColumnModel().getColumn(2); coloneCodeModalite.setHeaderRenderer(new MonHeaderRenderer()); JComboBox headerJcb=(JComboBox) coloneCodeModalite.getHeaderRenderer(); headerJcb.addItem("val1"); headerJcb.addItem("val2"); headerJcb.addItem("val3");
Partager