Вопрос

у меня есть JList с большим количеством предметов, из которых выбран. Я хотел бы прокрутить выбранное предмет в этом JList, поэтому пользователь может быстро увидеть, какой элемент выбран.

Как я могу это сделать?

String[] data = {"one", "two", "three", "four", /* AND A LOT MORE */};
JList dataList = new JList(data);
JScrollPane scrollPane = new JScrollPane(dataList);
Это было полезно?

Решение

Это должно это сделать:

dataList.ensureIndexIsVisible(dataList.getSelectedIndex());

Другие советы

Или, если включен мульти-выбор:

dataList.scrollRectToVisible(
        dataList.getCellBounds(
            dataList.getMinSelectionIndex(), 
            dataList.getMaxSelectionIndex()
        )
);

Вы можете использовать ensureIndexIsVisible метод

http://java.sun.com/javase/6/docs/api/javax/swing/jlist.html#ensureIndexIsible(int)

Прокручивают список в ограждающем визе, чтобы сделать указанную ячейку полностью видимой. Это вызывает ScrollRecttovisible с границами указанной ячейки. Для этого метода JList должен находиться в пределах JViewport.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top