我有一個JList組件應該被清空和重新填充。下面的代碼(基於我的原始代碼)顯示了一個JList和一個JButton一個簡單的窗口:非常緩慢JList重填
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);
}
}
如果我按下按鈕插入(10000項)是非常快的。如果我一再按下它,它仍然非常快。
如果我選擇第三項並按下按鈕,結果是一樣的,插入非常快。
如果我選擇第一項並按下按鈕,程序變得非常慢(實際上我必須停止它)。
爲什麼選擇第一項會減慢執行速度?
我已經使用JDK 1.5和1.6測試了它。
什麼「物品」? – 2010-08-26 15:44:23
元素(「aaaa」) – asalamon74 2010-08-27 07:09:19