Bonjour,
J'ai un JTable avec deux lignes créé à partir d'un modèle.
J'aimerais mettre des JComboBox dans la première ligne et des images dans la deuxième.
Je sais mettre les images et les JComboBox dans des colonnes (une colonne de chaque), mais je n'arrive pas à gérer l'affichage en ligne.
Dans le getTableCellRenderer, je n'arrive pas à faire des conditions du style :
Merci d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (row==0) { //Affichage d'une JComboBox } else if { //Affichage d'une image }
Edit :
Réponse trouvée :
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
25
26
27 @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { /** * AFFICHER LA JCOMBOBOX ET L'IMAGE */ //Définir la JComboBox qui servira d'entête JComboBox<String> renderCombo = new JComboBox<>(); //Afficher le composant uniquement dans la première ligne if (row == 0) { try { //Créer une nouvelle combo avec juste une valeur pour faire un rendu qui ressemble à un éditeur renderCombo = new JComboBox<>(new DefaultComboBoxModel<>(new String[]{"ComboEditorRenderer"})); } catch (NullPointerException pasSelection) { } //Renvoyer la JComboBox qui servira d'entête return renderCombo; } else { //Renvoyer une étiquette avec une image à l'intérieur return new JLabel(imgAtelier); } }
Partager