Java JList прокрутить до выбранного элемента - PullRequest
20 голосов
/ 09 октября 2009

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

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

String[] data = {"one", "two", "three", "four", /* AND A LOT MORE */};
JList dataList = new JList(data);
JScrollPane scrollPane = new JScrollPane(dataList);

Ответы [ 3 ]

52 голосов
/ 09 октября 2009

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

dataList.ensureIndexIsVisible(dataList.getSelectedIndex());
11 голосов
/ 09 октября 2009

Или, если включен множественный выбор:

dataList.scrollRectToVisible(
        dataList.getCellBounds(
            dataList.getMinSelectionIndex(), 
            dataList.getMaxSelectionIndex()
        )
);
10 голосов
/ 09 октября 2009

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

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

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

...