Java Jlist role para o item selecionado
Pergunta
eu tenho um JList
com muitos itens nele, dos quais é selecionado. Eu gostaria de rolar para o item selecionado neste JList
, para que o usuário possa ver rapidamente qual item está selecionado.
Como posso fazer isso?
String[] data = {"one", "two", "three", "four", /* AND A LOT MORE */};
JList dataList = new JList(data);
JScrollPane scrollPane = new JScrollPane(dataList);
Solução
Isso deve servir:
dataList.ensureIndexIsVisible(dataList.getSelectedIndex());
Outras dicas
Ou, se a seleção múltipla estiver ativada:
dataList.scrollRectToVisible(
dataList.getCellBounds(
dataList.getMinSelectionIndex(),
dataList.getMaxSelectionIndex()
)
);
Você pode usar o ensureIndexIsVisible
método
http://java.sun.com/javase/6/docs/api/javax/swing/jlist.html#ensureindexisvisible(int)
Role a lista em uma visualização anexando para tornar a célula especificada completamente visível. Isso chama ScrollRectTovisible com os limites da célula especificada. Para que este método funcione, o JLIST deve estar dentro de um JVIEWPORT.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow