Java JList de desplazamiento para el elemento seleccionado
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);
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
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