使用JList显示大量数据?

时间:2011-11-18 11:21:15

标签: java swing pagination jlist

我有一个JList,必须显示超过3000个项目。我希望列表中的100个项目“可见”,当您滚动并接近“可见”项目的结尾(或开始)时,必须在列表中加载下一部分(大约50个)。有没有简单的方法呢?

3 个答案:

答案 0 :(得分:3)

该列表仅呈现可见部分。因此,从这个角度来看,没有任何开销。如果你想延迟加载 - 使用自定义模型。

从此page
您可以编写自己的类来扩展AbstractListModel或AbstractTableModel,以便在必要时提供所需的数据。以下示例显示了AbstractTableModel的用法。

答案 1 :(得分:2)

没有简单的方法,你必须实现Pagination(s)

  • 数据库引擎管理时最简单的工作,大多数工作直接支持分页

  • 模型中的
  • ,但我从未见过XxxListModel的解决方法,使用JTable代替Colum,对于JTable的分页有一些很好的解决方法

答案 2 :(得分:1)

  

我有一个JList,必须显示超过3000个项目。

咦。你让那听起来像个大号。这是一个列表(并显示正常),超过30个项目。

Big List

import javax.swing.*;

class BigList {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                int bigNumber = 30001;
                String[] bigData = new String[bigNumber];
                for (int ii=0; ii<bigNumber; ii++) {
                    bigData[ii] = "String " + (ii+1);
                }
                JList list = new JList(bigData);
                list.setVisibleRowCount(5);

                JOptionPane.showMessageDialog(null, new JScrollPane(list));
            }
        });
    }
}