Pregunta

Tengo un JList con una gran cantidad de elementos que contiene, de los cuales se selecciona uno. Me gustaría para desplazarse hasta el elemento seleccionado en este JList, por lo que el usuario puede ver rápidamente el elemento seleccionado.

¿Cómo puedo hacer esto?

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

Solución

Esto debe hacerlo:

dataList.ensureIndexIsVisible(dataList.getSelectedIndex());

Otros consejos

O, si la selección múltiple está habilitado:

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

Puede utilizar el método ensureIndexIsVisible

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

  

Se desplaza por la lista dentro de una envolvente   visor para hacer la celda especificada   completamente visible. Para esto se necesitan   scrollRectToVisible con los límites de   la celda especificada. Para que este método   trabajo, el JList debe estar dentro de una   JViewport.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top