我有一个 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);
但是添加元素时什么也不会发生(无输出)
最佳答案
您可以使用 JList 的 setVisibleRowCount(...)
方法来控制 JList
的首选大小。
那么您需要向 JList
的 ListModel
添加一个 ListDataListener
来监听数据的变化。每当生成 contentChanged
事件时,您都会重置 JList
的可见行计数。
您需要将行数限制在合理的最大值,例如 20。
关于java - 如何在添加元素的同时增加 JList 的垂直大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34107408/