Domanda

Ho un JList con un sacco di oggetti in esso, di cui è selezionato uno. Vorrei scorrere fino alla voce selezionata in questo JList, così l'utente può vedere rapidamente quale elemento è selezionato.

Come posso fare questo?

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

Soluzione

Questo dovrebbe farlo:

dataList.ensureIndexIsVisible(dataList.getSelectedIndex());

Altri suggerimenti

O, se multi-selezione è attivata:

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

È possibile utilizzare il metodo ensureIndexIsVisible

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

  

Scorre l'elenco all'interno di un racchiude   finestra per renderla la cella specificata   completamente visibile. ciò richiede   scrollRectToVisible con i limiti di   la cella specificata. Per questo metodo per   il lavoro, la JList deve essere all'interno di una   JViewport.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top