尽管添加了JScrollPane,JList视图区域仍在增长

时间:2014-03-06 16:40:26

标签: java swing jscrollpane jlist

这是我的代码:

protected JComponent createCommandHistory() {
    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());

    listModel = new DefaultListModel();
    list = new JList(listModel);

    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    list.addListSelectionListener(this);
    list.setVisibleRowCount(10);

    JScrollPane listScrollPane = new JScrollPane(list);

    panel.add(list);
    panel.add(new JSeparator(JSeparator.HORIZONTAL), BorderLayout.SOUTH);
    panel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));

    return panel;   
}

随着元素添加到列表中,视图区域增长而不是受滚动条的限制。

任何帮助表示赞赏!感谢

2 个答案:

答案 0 :(得分:4)

panel.add(list);

应该是:

panel.add(listScrollPane);

答案 1 :(得分:4)

您要将list添加到面板中,而是需要添加listScrollPane

此外,在将组件添加到具有BorderLayout的JPanel时,请务必指定位置 - 例如BorderLayout.CENTER