2012-06-18 17 views
12

Witam Próbuję ustawić fokus na pozycji w widoku listy. Po otwarciu pliku element jest dodawany do listy, ale problem, który mam, polega na tym, że widok listy nie ustawia ostrości na nowy element, który został dodany. Muszę kliknąć element w widoku listy, aby ustawić na nim ostrość. Czy istnieje sposób, aby wyświetlić listę, aby podświetlić nowo dodany element od razu w JavaFX 2.1.JavaFX wybierz pozycję w ListView

+0

Używam JavaFX 2.1 – user16380

Odpowiedz

38

Zakładając, że nowo dodany element ma indeks N,
Wybranie go:

listView.getSelectionModel().select(N); 

Skupiając się na nim:

listView.getFocusModel().focus(N); 

Przewijanie do niego:

listView.scrollTo(N); 

Możesz użyć kombinacji tych i pr korzystnie w Platform.runLater().
Scroll wybierz:

Platform.runLater(new Runnable() { 

    @Override 
    public void run() { 
     listView.scrollTo(N); 
     listView.getSelectionModel().select(N); 
    } 
}); 
+0

Dziękuję bardzo. Działało idealnie. – user16380

+0

Miałem ten sam problem przy użyciu java 8, a rozwiązaniem było uruchomienie selekcji po pewnym czasie od aktualizacji listView: 'FxTimer.runLater (Duration.ofMillis (250),() -> listView.getSelectionModel(). select (selectedItem)); ' – Harry244