Bloqué sur un Jlist LModel
Bonjour,
J'ai créé une extension d'une JList et je suis bloqué lorsque j'ajoute des lignes après avoir fait une removeAllElements.
J'ajoute plusieurs centaines de lignes, et tout à coup je suis bloqué, et jamais au même endroit. Lorsque je clique avec le bouton droit j'execute une méthode pour changer les couleurs de certaines parties de la ligne texte. Cela marche très bien. Mais dans l'essai que j'ai fait, je lis simplement toutes les lignes et les ré-écris. J'ai vérifié que toutes les lignes sont bien lues, en créant un fichier texte. Toutes les lignes sont présentes lorsque l'ajout dans le modèle est en commentaire ( Environ 32 000.) mais dès que je dé-commente cette instruction, ça bloque.
Ma question est : y-a-il une limite ? après avoir remis le modèle à zéro.
Merci
Gérard
Voici un résumé de ce que je fais.
Code:
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
|
public class GegeList extends javax.swing.JList
{
public GegeList() // constructeur
{
super();
initialize(); //
}
void initialize()
{
this.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
if (SwingUtilities.isRightMouseButton(e) || e.isControlDown())
{
refresh();
}
}
));
}
void refresh()
{
DefaultListModel listModel = (DefaultListModel) this.getModel();
if (listModel==null) return;
if (listModel.size()==0) return;
Vector<String> v = new Vector<String>();
String entete = "color='";
for (int i=0; i<listModel.size(); i++)
{
String ligne = (String) listModel.elementAt(i);
if (ligne.startsWith("<html>"))
{
// if (ligne.indexOf("C3=") >5) ligne = refresh1Couleurs(ligne, v, entete);
// else ligne = refresh2Couleurs(ligne, v, entete);
}
v.add(i, ligne);
}
listModel.removeAllElements();
try
{
// String newLine = System.getProperty("line.separator");
// FileWriter fw = new FileWriter("F:\\Test\\TestJava.txt");
for (int i=0; i<v.size(); i++)
{
String ligne = v.elementAt(i);
listModel.addElement(ligne); // bloqué ici après quelques centaines d'ajouts
// fw.write(ligne+newLine);
}
// fw.close();
// this.setModel(listModel);
}
catch (Exception ex) {System.out.println(ex.toString());}
}
} |