Originariamente inviato da andbin
Ci sono 2 modi e nota, non c'è da andare direttamente a manipolare il JScrollBar (al massimo il JViewport).

Modo 1)
unJList.ensureIndexIsVisible(indiceRiga);

Questo fa sì che la riga sia resa visibile. Da notare che la posizione fisica della riga all'interno della vista non è precisato, dipende da dove era "vista" prima di rendere visibile l'elemento (cioè se prima o dopo). Se la riga fosse già visibile, non viene cambiato nulla.

Modo 2)
codice:
Rectangle rowRect = unJList.getCellBounds(indiceRiga, indiceRiga);

if (rowRect != null) {
    JViewport viewport = scrollPane.getViewport();
    viewport.setViewPosition(rowRect.getLocation());
}
Questo fa sì che la riga sia resa visibile e posizionata sempre in alto/sinistra (a seconda della modalità di JList). Se non è possibile farlo (es. non ci sono sufficienti elementi affinché quella riga sia al "top") la riga è comunque garantito che sia visibile.
Grazie 1000!