javafx
Paginering
Sök…
Skapa en pagination
Paginationer i JavaFX använder ett återuppringning för att få sidorna som används i animeringen.
Pagination p = new Pagination();
p.setPageFactory(param -> new Button(param.toString()));
Detta skapar en oändlig lista med knappar som numreras 0..
eftersom zero arg-konstruktören skapar en oändlig pagination. setPageFactory
tar ett återuppringning som tar en int och returnerar den nod vi vill ha vid det indexet.
Auto förskott
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();
Detta fortsätter paginationen var 5: e sekund.
Hur det fungerar
Pagination p = new Pagination(10);
Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(5), event -> {
fiveSecondsWonder
är en tidslinje som avfyrar en händelse varje gång den avslutar en cykel. I detta fall är cykeltiden 5 sekunder.
int pos = (p.getCurrentPageIndex()+1) % p.getPageCount();
p.setCurrentPageIndex(pos);
Markera paginationen.
}));
fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
Ställ in tidslinjen så att den ska köra för alltid.
fiveSecondsWonder.play();
Skapa en pagination av bilder
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)));
Observera att sökvägarna måste vara webbadresser, inte filsystemvägar.
Hur det fungerar
p.setPageFactory(n -> new ImageView(images.get(n)));
Allt annat är bara fluff, det är här som det verkliga arbetet händer. setPageFactory
tar ett återuppringning som tar en int och returnerar den nod vi vill ha vid det indexet. Den första sidan kartar till det första objektet i listan, det andra till det andra objektet i listan och så vidare.