Ошибка прокрутки JList? - PullRequest
       13

Ошибка прокрутки JList?

0 голосов
/ 19 января 2012

Я не знаю, используется ли это только тогда, когда я использую 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 ]

4 голосов
/ 19 января 2012

Вероятно, это связано с вашим использованием установки предпочтительного размера и использованием JScrollPane.VERTICAL_SCROLLBAR_ALWAYS.Если вы поместите эту константу туда, она всегда будет показывать полосу прокрутки, независимо от того, можете ли вы прокрутить или нет.

Просто попробуйте, и я уверен, что она будет работать:

1 голос
/ 19 января 2012

Шаги:

  1. Создайте компонент JList, называемый, скажем, myJList.

  2. Создайте компонент JScrollPane, используя ваш JListComponent: JScrollPane myScrollPane = new JScrollPane (myJList);

  3. Добавьте только графическую панель JScrollPane: .add (myScrollPane)

1 голос
/ 19 января 2012

Вам следует обернуть JScrollPane вокруг JList

Пример:

JScrollPane scrollpane = new JScrollPane(list);

PS: Используемые вами соглашения об именах не подходят вообще !!!

...