[英]Display only 4 records and add a scroll bar to JList
我添加了一个JList,并使它一次仅显示4条记录。 如果有多于4条记录,则用户应该能够滚动和查看其他记录。 但就我而言,我可以看到添加的所有8-10条记录。 该代码未显示前4条记录和滚动条。 有人可以告诉我我想念的吗?
import java.awt.BorderLayout;
public class FrameTest {
private JPanel panel;
private JFrame frame;
private FrameTest ft;
private JList list;
public FrameTest() {
initComponents();
ft = this;
}
private void initComponents() {
frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
panel = new JPanel();
panel.setBorder(new EmptyBorder(5, 5, 5, 5));
panel.setLayout(new BorderLayout(0, 0));
frame.getContentPane().add(panel);
list = new JList();
list.setVisibleRowCount(4);
list.setModel(new AbstractListModel() {
String[] values = new String[] {"adf", "gr", "rg", "g", "tg", "gt", "tg", "tg", "t", "gt", "gt"};
public int getSize() {
return values.length;
}
public Object getElementAt(int index) {
return values[index];
}
});
list.setSelectedIndex(1);
panel.add(list, BorderLayout.SOUTH);
frame.setLocationByPlatform(true);
frame.pack();
frame.setVisible(true);
}
}
注意:上面是我的代码的简化版本。
尝试将JList
添加到JScrollPane
并将滚动窗格添加到框架。
panel.add(new JScrollPane(list), BorderLayout.SOUTH);
getPreferredScrollableViewportSize
使用visibleRowCount
确定滚动窗格中应显示的行数
setVisibleRowCount()
更改JList的大小首选项 ,但是实际大小由布局管理器对JList进行布局确定。 有些布局会注意首选尺寸,而有些则不会。
该文件说:
对于“垂直”布局方向,这无需滚动即可设置或获取要显示的首选行数。 对于HORIZONTAL_WRAP或VERTICAL_WRAP布局方向,它定义了单元格的包装方式。
JavaDoc中有更多详细信息。
使用JScrollPane
实现滚动条。
JScrollPane scrollPane = new JScrollPane(list);
panel.add(scrollPane, BorderLayout.SOUTH);
教程中的详细信息在这里: 使用JScrollPane
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.