JList滚动错误?

时间:2012-01-19 17:04:40

标签: java swing jscrollpane jlist

我不知道这是不是在我使用DefaultListModel而不是vector时,但问题是当我制作JList& JScrollPane,滚动条显示正确,但即使有足够的元素填充整个窗口,我也无法滚动。

源代码:

panel_unit.add(YUi.JScrollPane(list = YUi.JList(main.config.fdata,0,0,this,0),500,314,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS),5,5);
public static JList JList(DefaultListModel text,int width,int height,ListSelectionListener listener,int SelIndex) {
    JList list = new JList(text);
    list.setPreferredSize(new Dimension(width,height));
    list.setSelectedIndex(SelIndex);
    list.addListSelectionListener(listener);
    return list;
}
public static JScrollPane JScrollPane(Component text,int width,int height,int HorizontalScrollBarPolicy,int VerticalScrollBarPolicy) {
    JScrollPane scrollpane = new JScrollPane(text);
    scrollpane.setPreferredSize(new Dimension(width,height));
    scrollpane.setHorizontalScrollBarPolicy(HorizontalScrollBarPolicy);
    scrollpane.setVerticalScrollBarPolicy(VerticalScrollBarPolicy);
    return scrollpane;
}

3 个答案:

答案 0 :(得分:4)

这可能与您使用设置首选大小和使用JScrollPane.VERTICAL_SCROLLBAR_​​ALWAYS有关。如果你将那个常数放在那里,它总会显示一个滚动条,无论你是否可以滚动。

试试我敢打赌它会起作用:

new JScrollPane( list );

答案 1 :(得分:1)

您应该将JScrollPane包装在JList

周围

示例:

JScrollPane scrollpane = new JScrollPane(list);

PS:您使用的命名约定根本不合适!!!

答案 2 :(得分:1)

步骤是:

  1. 创建JList组件,名为let,即“myJList”。

  2. 使用JListComponent创建JScrollPane组件: JScrollPane myScrollPane = new JScrollPane(myJList);

  3. 仅将JScrollPane添加到GUI:.add(myScrollPane)