我有一个JList,必须显示超过3000个项目。我希望列表中的100个项目“可见”,当您滚动并接近“可见”项目的结尾(或开始)时,必须在列表中加载下一部分(大约50个)。有没有简单的方法呢?
答案 0 :(得分:3)
该列表仅呈现可见部分。因此,从这个角度来看,没有任何开销。如果你想延迟加载 - 使用自定义模型。
从此page:
您可以编写自己的类来扩展AbstractListModel或AbstractTableModel,以便在必要时提供所需的数据。以下示例显示了AbstractTableModel的用法。
答案 1 :(得分:2)
没有简单的方法,你必须实现Pagination(s)
数据库引擎管理时最简单的工作,大多数工作直接支持分页
,但我从未见过XxxListModel的解决方法,使用JTable代替Colum,对于JTable的分页有一些很好的解决方法
答案 2 :(得分:1)
我有一个JList,必须显示超过3000个项目。
咦。你让那听起来像个大号。这是一个列表(并显示正常),超过30个千项目。
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));
}
});
}
}