# JavaFX Pagination Demo

**URL:** <https://discourse.processing.org/t/javafx-pagination-demo/46440>\
**Category:** Gallery\
**Created:** [May 24, 2025, 4:31pm UTC](https://discourse.processing.org/t/javafx-pagination-demo/46440 "2025-05-24T16:31:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![svan](https://avatars.discourse-cdn.com/v4/letter/s/82dd89/32.png) [@svan](https://discourse.processing.org/u/svan)\
**Post date:** [May 24, 2025, 4:31pm UTC](https://discourse.processing.org/t/javafx-pagination-demo/46440/1 "2025-05-24T16:31:38Z")

</div>

JavaFX Pagination control demo modified to run in Processing default window:

```processing
//https://jenkov.com/tutorials/javafx/pagination.html

import javafx.scene.canvas.Canvas;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.Pane;
import javafx.scene.control.Pagination;
import javafx.scene.control.Label;
import javafx.scene.text.Font;

Canvas canvas;
StackPane root;
int pageIndex = 0;

void setup() {
  size(600, 600, FX2D);
  surface.setTitle("JavaFX Pagination Demo");
  canvas = (Canvas)surface.getNative();
  root = (StackPane)canvas.getParent();
  Pagination pagination = new Pagination();
  pagination.setPageCount(21);
  pagination.setCurrentPageIndex(0);
  pagination.setMaxPageIndicatorCount(3);
  pagination.setPageFactory((pageIndex) -> {
    Label label = new Label("Content for page with index: " + str(pageIndex+1));
    label.setLayoutX(30);
    label.setFont(new Font("Arial", 20));
    return new Pane(label);
  }
  );
  root.getChildren().add(pagination);
}

```

**Output:**

 ![p](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/a/1/a19ab17529ea4f04d90a2c25a7507a9886a53a45.png)
