我有一个JList,它的垂直尺寸足以容纳一个元素(图像1)
添加元素时,它看起来像(图像2)
但我需要的是这个(图片3)
我希望在添加额外元素时增加JList的垂直大小。这应该继续,直到JList的垂直大小达到其限制。 (说200) 有没有办法克服这个问题?
我尝试过使用,
DefaultListModel<String> dl = new DefaultListModel<>();
dl.addListDataListener(new ListDataListener() {
@Override
public void intervalAdded(ListDataEvent e) {
// do nothing
}
@Override
public void intervalRemoved(ListDataEvent e) {
// do nothing
}
@Override
public void contentsChanged(ListDataEvent e) {
System.out.println("content changed");
}
});
jList1.setModel(dl);
但添加元素(无输出)时不会发生任何事情
答案 0 :(得分:1)
您可以使用JList的setVisibleRowCount(...)
方法来控制JList
的首选大小。
因此,您需要向ListDataListener
的{{1}}添加ListModel
来监听数据中的更改。每当生成JList
事件时,您都会重置contentChanged
的可见行数。
您需要将行数限制在合理的最大值,例如20。