javafx
Paginering
Zoeken…
Paginering maken
Paginaties in JavaFX gebruiken een callback om de pagina's te krijgen die in de animatie worden gebruikt.
Pagination p = new Pagination();
p.setPageFactory(param -> new Button(param.toString()));
Dit creëert een oneindige lijst met knoppen met een nummer 0..
omdat de constructor zero arg een oneindige paginering creëert. setPageFactory
neemt een callback waarvoor een int is vereist en retourneert het knooppunt dat we in die index willen hebben.
Auto vooruit
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();
Dit bevordert de paginering om de 5 seconden.
Hoe het werkt
Pagination p = new Pagination(10);
Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(5), event -> {
fiveSecondsWonder
is een tijdlijn die een gebeurtenis fiveSecondsWonder
telkens wanneer een cyclus wordt beëindigd. In dit geval is de cyclustijd 5 seconden.
int pos = (p.getCurrentPageIndex()+1) % p.getPageCount();
p.setCurrentPageIndex(pos);
Vink de paginering aan.
}));
fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
Stel de tijdlijn in om voor altijd te lopen.
fiveSecondsWonder.play();
Maak een paginering van afbeeldingen
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)));
Merk op dat de paden urls moeten zijn, geen bestandssysteempaden.
Hoe het werkt
p.setPageFactory(n -> new ImageView(images.get(n)));
Al het andere is gewoon pluis, dit is waar het echte werk gebeurt. setPageFactory
neemt een callback waarvoor een int is vereist en retourneert het knooppunt dat we in die index willen hebben. De eerste pagina wordt toegewezen aan het eerste item in de lijst, de tweede aan het tweede item in de lijst, enzovoort.