在分页中实现页面工厂
分页将内容在页面之间划分,并允许用户在页面之间跳过或按顺序浏览内容。您可以通过实例化javafx.scene.control.Pagination类来创建分页。
示例
以下示例演示了如何创建分页并向其中添加数据。
import java.io.FileInputStream; import java.io.InputStream; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Pagination; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; import javafx.stage.Stage; public class PaginationAction extends Application { public ImageView pageContent(int pageIndex){ try{ //创建图像视图 ImageView imageView = new ImageView(); //设置图像视图参数 imageView.setFitWidth(590); imageView.setFitHeight(300); imageView.setPreserveRatio(true); String [] img = {"elephant.jpg", "cat.jpg", "boy.jpg", "car.jpg", "road.jpg"}; for(int i = pageIndex; i<pageIndex+1; i++) { //创建图像对象 InputStream stream = new FileInputStream("D:\\images\\"+img[i]); Image image = new Image(stream); imageView.setImage(image); } return imageView; }catch (Exception e) {} return null; } public void start(Stage stage) { //创建分页 Pagination pagination = new Pagination(); //设置页数 pagination.setPageCount(5); //为各个页面创建内容 pagination.setPageFactory((Integer pageIndex) -> pageContent(pageIndex)); //创建一个锚定窗格以保留分页 AnchorPane pane = new AnchorPane(); AnchorPane.setTopAnchor(pagination, 5.0); AnchorPane.setRightAnchor(pagination, 5.0); AnchorPane.setBottomAnchor(pagination, 5.0); AnchorPane.setLeftAnchor(pagination, 5.0); pane.getChildren().addAll(pagination); //设置舞台 Scene scene = new Scene(pane, 595, 330, Color.BEIGE); stage.setTitle("Pagination"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
输出结果