我不知道这是不是在我使用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;
}
答案 0 :(得分:4)
这可能与您使用设置首选大小和使用JScrollPane.VERTICAL_SCROLLBAR_ALWAYS有关。如果你将那个常数放在那里,它总会显示一个滚动条,无论你是否可以滚动。
试试我敢打赌它会起作用:
new JScrollPane( list );
答案 1 :(得分:1)
您应该将JScrollPane包装在JList
周围示例:
JScrollPane scrollpane = new JScrollPane(list);
PS:您使用的命名约定根本不合适!!!
答案 2 :(得分:1)
步骤是:
创建JList组件,名为let,即“myJList”。
使用JListComponent创建JScrollPane组件: JScrollPane myScrollPane = new JScrollPane(myJList);
仅将JScrollPane添加到GUI:.add(myScrollPane)