Bonjour, je poursuis encore mon apprentissage.
J'ai finalement décider de passer par des jlist.
Cependant, j'ai un problème lorsqu'il s'agit de modifier l’apparence de lignes ajoutées dans une liste, après une action sur une autre liste.
Avant que je n'ajoute cette fonctionnalité, je pouvais ajouter dans une seule liste des éléments contenus dans 3 autres listes.
Je voudrais que en fonction de l'appartenance des éléments de liste cliqué, il y ai une couleur différente.
Par exemple:
-en cliquant sur un élément de jList1, sur jListPrincipale j'ai l'élément en rouge
-en cliquant sur un élément de jList2, sur jListPrincipale j'ai l'élément en vert
-en cliquant sur un élément de jList1, sur jListPrincipale j'ai l'élément en rouge
-en cliquant sur un élément de jList3, sur jListPrincipale j'ai l'élément en noir
-etc
Pour l'instant, j'ai ceci:
et quand j'ai un Evénement de type click sur ma jList1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 modelFont=new MyCellRenderer() lmlPrincipale = new DefaultListModel(); listPrincipale = new JList(lmlPrincipale); listPrincipale.setCellRenderer(modelFont);
Or, en faisant ceci, les éléments ajoutés existent, mais ils sont invisibles :/
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 jList1.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { Object valeurs = Jlist1.getSelectedValue(); valeurs=(String)valeurs; for(int i=0;i<collection.coll.size();i++){ if(collection.coll.get(i).getNom().equals(valeurs)){ lmlPrincipale.addElement(collection.coll.get(i).toString('|')); listPrincipale.repaint(); listPrincipale.updateUI(); } } } });
(j'ai mis un compteur sur la liste principale, les éléments sont bien ajoutés, mais non visibles, je dois avoir une erreur dans ma classe MyCellRenderer )
Pourriez vous m'indiquer où se situe mon erreur?
Merci!
Ah, voici mon modeleRenderer
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 import java.awt.Color; import java.awt.Component; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; class MyCellRenderer extends JLabel implements ListCellRenderer { public MyCellRenderer() { setOpaque(true); } public Component getListCellRendererComponent(JList list, Object value,int index, boolean isSelected, boolean cellHasFocus) { // TODO Auto-generated method stub setForeground(Color.BLUE); return this; } }
Partager