javafx
Paginacja
Szukaj…
Tworzenie stronicowania
Paginacje w JavaFX używają wywołania zwrotnego, aby uzyskać strony używane w animacji.
Pagination p = new Pagination();
p.setPageFactory(param -> new Button(param.toString()));
Tworzy to nieskończoną listę przycisków ponumerowanych 0..
ponieważ konstruktor zerowy arg tworzy nieskończoną paginację. setPageFactory
pobiera wywołanie zwrotne, które przyjmuje wartość int, i zwraca węzeł, który chcemy pod tym indeksem.
Automatyczne przewijanie
Pagination p = new Pagination(10);
Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(5), event -> {
int pos = (p.getCurrentPageIndex()+1) % p.getPageCount();
p.setCurrentPageIndex(pos);
}));
fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
fiveSecondsWonder.play();
stage.setScene(new Scene(p));
stage.show();
Przyspiesza to paginację co 5 sekund.
Jak to działa
Pagination p = new Pagination(10);
Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(5), event -> {
fiveSecondsWonder
to oś czasu, która uruchamia zdarzenie za każdym razem, gdy kończy cykl. W takim przypadku czas cyklu wynosi 5 sekund.
int pos = (p.getCurrentPageIndex()+1) % p.getPageCount();
p.setCurrentPageIndex(pos);
Zaznacz paginację.
}));
fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
Ustaw oś czasu, aby działała wiecznie.
fiveSecondsWonder.play();
Utwórz paginację zdjęć
ArrayList<String> images = new ArrayList<>();
images.add("some\\cool\\image");
images.add("some\\other\\cool\\image");
images.add("some\\cooler\\image");
Pagination p = new Pagination(3);
p.setPageFactory(n -> new ImageView(images.get(n)));
Pamiętaj, że ścieżki muszą być adresami URL, a nie ścieżkami systemu plików.
Jak to działa
p.setPageFactory(n -> new ImageView(images.get(n)));
Cała reszta to tylko puch, tutaj dzieje się prawdziwa praca. setPageFactory
pobiera wywołanie zwrotne, które przyjmuje wartość int, i zwraca węzeł, który chcemy pod tym indeksem. Pierwsza strona jest odwzorowywana na pierwszy element na liście, od drugiego do drugiego elementu na liście i tak dalej.