Javafx 简明教程
JavaFX - Pagination
Pagination 控件是一个 UI 组件,允许用户在内容的不同页面之间导航。例如,我们可以使用此功能显示搜索结果、文章、图像或任何其他需要多页的内容类型。一个典型的分页控件有一个页面导航区域、上一页按钮和下一页按钮,如下图所示 −
Creating a Pagination in JavaFX
在 JavaFX 中,分页控件是通过实例化名为 Pagination 的类创建的。此类属于包 javafx.scene.control 。此类的构造函数如下所示 −
-
Pagination() − 它将生成一个没有页面计数的分页控件,默认页面索引为零。但是,我们也可以使用此默认构造函数,并使用 setPageCount() 和 setCurrentPageIndex() 方法稍后设置这些属性。
-
Pagination(int pageCount) − 它将创建具有指定页数的分页控件。
-
Pagination(int pageCount, int currentIndex) − 使用给定的页面数和当前索引构建新的分页控件。
在 JavaFX 中创建分页时,我们的第一步是使用以上构造函数实例化 Pagination 类。接下来,定义一个布局窗格,例如通过将 Pagination 对象传递给其构造函数的 Vbox 或 Hbox。最后,设置场景和舞台在屏幕上显示分页控件。
Example
下面的 JavaFX 程序演示了如何在 JavaFX 应用程序中创建分页。将此代码保存到名为 PaginationJavafx.java 的文件中。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Pagination;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.Node;
import javafx.util.Callback;
import javafx.geometry.Pos;
public class PaginationJavafx extends Application {
private Pagination paging;
@Override
public void start(Stage stage) {
// instantiating Pagination class
paging = new Pagination(5);
// to change the page number
paging.setPageFactory(new Callback <Integer, Node>() {
@Override
public Node call(Integer pageIndex) {
return new Label("Page No." + (pageIndex + 1));
}
});
// creating Vbox that will contain the pagination
VBox box = new VBox();
box.getChildren().addAll(paging);
box.setAlignment(Pos.CENTER);
// creating scene and stage
Scene scene = new Scene(box, 400, 300);
stage.setScene(scene);
stage.setTitle("Pagination in JavaFX");
stage.show();
}
// to launch the application
public static void main(String[] args) {
launch(args);
}
}
要从命令提示符编译并执行已保存的 Java 文件,请使用以下命令−
javac --module-path %PATH_TO_FX% --add-modules javafx.controls PaginationJavafx.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls PaginationJavafx
当我们执行上述代码时,它将生成以下输出。
Defining Current Index Page
Pagination 类的其中一个构造函数接受两个参数,即页面数和当前索引。每当我们使用此构造函数时,它会生成一个包含指定页面数和当前所选索引号的分页控件。
Example
在下面的示例中,我们创建一个当前选定的索引号为 3 的分页控件。将此代码保存到名为 JavafxPagination.java 的文件中。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Pagination;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.scene.Node;
import javafx.util.Callback;
import javafx.geometry.Pos;
public class JavafxPagination extends Application {
private Pagination paging;
@Override
public void start(Stage stage) {
// creating pagination with 10 pages and currently selected index as 3
paging = new Pagination(10, 2);
// to change the page number
paging.setPageFactory(new Callback <Integer, Node>() {
@Override
public Node call(Integer pageIndex) {
return new Label("Page No." + (pageIndex + 1));
}
});
// creating Vbox that will contain the pagination
VBox box = new VBox();
box.getChildren().addAll(paging);
box.setAlignment(Pos.CENTER);
// creating scene and stage
Scene scene = new Scene(box, 400, 300);
stage.setScene(scene);
stage.setTitle("Pagination in JavaFX");
stage.show();
}
// to launch the application
public static void main(String[] args) {
launch(args);
}
}
通过使用以下命令从命令提示符编译并执行保存的 Java 文件 −
javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxPagination.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxPagination
在执行上述代码时,它将生成以下输出。