J'ai un composant JList qui doit être vidé et repeuplé. Le code suivant (basé sur mon code d'origine) montre une fenêtre simple avec un JList et un JButton:Repopulation JList très lente
import java.awt.BorderLayout;
import javax.swing.*;
public class JListTest extends javax.swing.JFrame{
JList jList;
JButton button;
DefaultListModel model;
public JListTest() {
jList = new JList();
model = new DefaultListModel();
jList.setModel(model);
button = new JButton();
getContentPane().add(jList, java.awt.BorderLayout.CENTER);
button.setText("add 10000 items");
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
model.clear();
for(int i=0; i<10000; ++i) {
model.addElement("aaaa");
}
}
});
getContentPane().add(button, BorderLayout.PAGE_START);
pack();
}
public static void main(String args[]) {
JListTest jlt =new JListTest();
jlt.setSize(300, 300);
jlt.setVisible(true);
}
}
Si j'appuie sur le bouton de l'insertion (10000 articles) est très rapide. Si je presse encore et encore, c'est toujours très rapide.
Si je sélectionne le troisième élément et appuyez sur le bouton, le résultat est le même, l'insertion est très rapide.
Si je sélectionne le premier élément et que j'appuie sur le bouton, le programme devient très lent (en fait je dois l'arrêter). Pourquoi la sélection du premier élément ralentit l'exécution?
Pourquoi la sélection du premier élément ralentit l'exécution? J'ai testé avec JDK 1.5 et 1.6.
Quels "articles" ??? –
elements ("aaaa") – asalamon74