2009-10-09 3 views
19

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

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

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

Чтобы убедиться, что это всегда видно вы можете переопределить метод setSelectedIndex и вызвать Sbodd-х способ оттуда. – WVrock

ответ

48

Это следует сделать это:

dataList.ensureIndexIsVisible(dataList.getSelectedIndex()); 
10

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

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

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

10

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

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

его dataList.getMinSelectionIndex() однако ответ по-прежнему полезен для меня :) – Fortega

+0

Спасибо - отредактированный код от 'Selelected' до' Selection' – Nate

Смежные вопросы