我有一个应该放风和重新接纳的耶稣会成员。 下面的法典(根据我的原法典)显示,只有一名JList和一名JButton的简单窗口:
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 );
}
}
如果我向纽伦施加压力,插入(10 000件)的速度非常快。 如果我再次施加压力,情况仍然非常快。
如果我选择第三个项目,并报到,结果就相同,插入的速度非常快。
如果我选择第一个项目,并报到纽州,该方案就会非常缓慢(实际上我不得不停止)。
为什么选择第一个项目会延缓执行?
我用JDK 1.5和1.6对它进行了测试。