English 中文(简体)
极慢的JList 人口
原标题:Very slow JList repopulation

我有一个应该放风和重新接纳的耶稣会成员。 下面的法典(根据我的原法典)显示,只有一名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对它进行了测试。

最佳回答

我建议写一下你自己的模式,允许一劳永逸地增加一股价值。 我猜测,除了这一模式之外,它不是因为这一模式而激发的,而是因为这一模式导致业绩丧失。

问题回答

我不肯定为什么选择一个项目造成业绩问题。 但是,每当你增加一件物品时,都会发射一个事件,表明名单可以重新打开。 因此,如果选定一个项目,可能会造成额外重复。

这样做的最佳途径是建立一个新的模式,然后在名单上添加:

    button.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            DefaultListModel dlm = new DefaultListModel();
            for( int i=0; i<10000; ++i ) {
                dlm.addElement( "aaaa");
            }
            jList.setModel(dlm);
        }
    });

这样,每增加一个新项目,就不会发生事件。

在类似情况下,不应在模式中增加许多内容。 更糟糕的是,你们的行动倾听者们pa忙地补充了这些物品,并且 that然援引“Swattilities.invoke Later()”来向名单上的更改事件开火。

请注意,根据以下评论,你需要做摘要List Model(或其中的子类),使之成为模型,并在援引的Later上打上<射线>。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签