wtorek, 25 czerwca 2013

Lista - jak wypełnić ?

Jako iż ostatnio nie miałem pomysłu na jakikolwiek post, pomyślałem o przykładzie wypełnienia zwykłej listy z innego wątku niż "javafx application thread"(tak to ten który nie lubi żeby mu się wpychać na siłę ze zmianami).

Przykład wygląda tak:
A co w kodzie ? standard, metoda start(która nawiasem mówiąc jest wykonywana zaraz po init()),
w niej obiekt klasy Scene(która jest kontenerem dla wszystkich innych elementów).
Wcześniej przed metodom start mamy jednak deklaracje samej Listy(ListView) oraz ObservableList(która odpowiada za przechowywanie listenerów mogących śledzić zmiany, kiedy te wystąpią).
Na samym końcu metody start uruchamiamy wątek, który wypełni Liste elementami 0-9(w pętli).
Wątek aktualizuje liste poprzez zwykłe dodanie elementu do listy. Ze względu na to że chcemy dostać się do javafx application thread(czyli głównego wątku aplikacji) korzysta z metody runLater z klasy Platform, bez skorzystanie z dobrodziejstwa klasy Platform moglibyśmy zostać obdarowani brzydkim wyjątkiem(pisałem o tym post wcześniej).

Odnoście samej klasy FXCollections to jest to kopia java.util.Collections z tym wyjątkiem że FXCollections zwraca ObservableList.

Rezultat, prymitywny bo prymitywny(ale działa ;D):

Brak komentarzy:

Prześlij komentarz