Bonjour j'ai un probleme avec ma JList.

J'ai definit un composant qui herite de JList ou j'ai redefini le renderer.
Mais je constate que lorsque j'apppelle ce composant en dehors du constructeur d'une fenetre que je cree, il n'affiche pas les donnees mais dans le constructeur les donnees sont affichee. je voulais savoir si quelqu'un n'a pas peut eu le meme probleme pour que je puisse en profiter.

le code de mon composant est assez volumineux neamoins je le poste:


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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
import java.util.*;
import javax.swing.table.*;
import javax.swing.*;
 
import java.awt.*;
import javax.accessibility.*;
 
public class JResult extends JList{
	private Vector data;
	private JListModel modele;
	private String type;
	/**
         * @param args
         */
 
	public JResult(String type,Vector donnees){		
		super(donnees);
		data=donnees;
		modele=new JListModel(donnees);
		this.setModel(modele);		
		this.setCellRenderer(new CustomDataRenderer(type));
		this.type=type;
 
	}
 
	public void afficher(Vector donnees){	
		modele.setDonnees(donnees);
 
	}
 
 
}
 
class JListModel  extends AbstractListModel{
	Vector donnees;
 
	public JListModel(Vector donnees){
		this.donnees=donnees;
	}
 
	public JListModel(){
	}
	public int getSize(){
		if (donnees==null)
			return 0;
		else
			return donnees.size();
	}
 
	public Object getElementAt(int index){
		return donnees.elementAt(index);
	}
 
	public Vector getDonnees() {
		return donnees;
	}
 
	public void setDonnees(Vector donnees) {
		this.donnees = donnees;
	}
 
}
 
 
class CustomDataRenderer extends JPanel  implements ListCellRenderer{
	private String type;
	private JLabel _labValeur;
	private JCheckBox _checkBox;
	 private AccessibleContext _accessibleContext;
 
	public CustomDataRenderer(String type) {
		this.type=type;
 
 
 
	}
 
	  public Component getListCellRendererComponent(
		      JList list,
		      Object value,
		      int index,
		      boolean isSelected,
		      boolean cellHasFocus){
 
		  	if (type.compareTo("WORD")==0) return new JLigneMot(list,value,index,isSelected,cellHasFocus);
		  	else if (type.compareTo("OLD")==0)  return new JLigneTranscription(list,value,index,isSelected,cellHasFocus);
		  	else if (type.compareTo("NEW")==0) return new JLigneReplace(list,value,index,isSelected,cellHasFocus);
		  	else return null;
 
	  }
 
	  public AccessibleContext getAccessibleContext() {
	    if ( _accessibleContext == null)  {
	      _accessibleContext = new AccessibleCustomRendererItem();
	    }
	    return _accessibleContext;
	  }  
 
/******************************************************************************************************/
	  private class JLigneMot extends JPanel{
	  	private JLabel _labValeur;
	  	private JCheckBox _checkBox;
	  	ImageIcon _icon;
 
	  	public JLigneMot(JList liste,Object value,int index, boolean isSelected,boolean cellHasFocus){
	  		this.setLayout(new BorderLayout());
	  		_checkBox=new JCheckBox();
	  		  _labValeur=new JLabel("Vente");
	  		  _icon=new ImageIcon("C:\\Eclipse-3.1\\eclipse\\Workspace\\RechercheModule\\odel\\findreplace\\ihm\\composants\\book03.gif");
	  		  _labValeur.setIcon(_icon);
	  		_labValeur.setText((String)value );
	 	    _checkBox.setSelected( true);
	  		 // this.add(_checkBox,BorderLayout.WEST);
	  		  this.add(_labValeur,BorderLayout.CENTER);
	  		  this.setBorder(BorderFactory.createEtchedBorder());
	  		 this.setPreferredSize(new Dimension(300,50));
 
 
 
	  	}
	  }
 
	  /******************************************************************************************************/
	  	  private class JLigneTranscription extends JPanel{
	  	  	private JLabel _labValeur;
	  	  	private JCheckBox _checkBox;
 
 
	  	  	public JLigneTranscription(JList liste,Object value,int index, boolean isSelected,boolean cellHasFocus){
	  	  	this.setLayout(new BorderLayout());
	  	  		_checkBox=new JCheckBox();
	  	  		  _labValeur=new JLabel("Vente");
	  	  		  this.add(_checkBox,BorderLayout.WEST);
	  	  		  this.add(_labValeur,BorderLayout.CENTER);
	  	  		  this.setBorder(BorderFactory.createEtchedBorder());
	  	  		 this.setPreferredSize(new Dimension(300,50));
	  	  		 this.setBackground(liste.getBackground());
	  	 	    //_checkBox.setBackground(list.getBackground());
	  	 	   _labValeur.setText((String)value );
	  	 	    _checkBox.setSelected( true);
	  	  	}
	  	  }
 
		  /******************************************************************************************************/
		  	  private class JLigneReplace extends JPanel{
		  	  	private JLabel _labValeur;
		  	  	private JCheckBox _checkBox;
 
 
		  	  	public JLigneReplace(JList liste,Object value,int index, boolean isSelected,boolean cellHasFocus){
		  	  		this.setLayout(new BorderLayout());
		  	  		_checkBox=new JCheckBox();
		  	  		  _labValeur=new JLabel("Vente");
		  	  		  //this.add(_checkBox,BorderLayout.WEST);
		  	  		  this.add(_labValeur,BorderLayout.CENTER);
		  	  		  this.setBorder(BorderFactory.createEtchedBorder());
		  	  		 this.setPreferredSize(new Dimension(300,50));
		  	  		 this.setBackground(liste.getBackground());
		  	 	    //_checkBox.setBackground(list.getBackground());
		  	 	   _labValeur.setText((String)value );
		  	 	    _checkBox.setSelected( true);
		  	  	}
		  	  } 	
 
/******************************************************************************************************/	  
 
	  private class AccessibleCustomRendererItem extends AccessibleJComponent {
	    public String getAccessibleName()
	    {
	      return _labValeur.getText();
	    }
 
	    public AccessibleRole getAccessibleRole()
	    {
	      return AccessibleRole.PANEL;
	    }
 
	    public AccessibleStateSet getAccessibleStateSet(){
	      AccessibleStateSet states = super.getAccessibleStateSet();
 
	      if ( isFocusOwner() ) {
	        states.add( AccessibleState.FOCUSED );
	      }
	      if ( _checkBox.isSelected() ){
	        states.add( AccessibleState.CHECKED );
	      }
 
	      return states;
	    }
	  } 
 
}