Ответ 1
Это должно сделать это:
dataList.ensureIndexIsVisible(dataList.getSelectedIndex());
У меня есть 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());
Вы можете использовать метод ensureIndexIsVisible
http://java.sun.com/javase/6/docs/api/javax/swing/JList.html#ensureIndexIsVisible(int)
Прокручивает список в закрытом viewport для создания указанной ячейки полностью виден. Это вызывает scrollRectToVisible с ограничениями указанную ячейку. Для этого метода работа, JList должен находиться в пределах JViewport.
Или, если включен многоэкранный выбор:
dataList.scrollRectToVisible(
dataList.getCellBounds(
dataList.getMinSelectionIndex(),
dataList.getMaxSelectionIndex()
)
);