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);
Foi útil?

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
scroll top