在分页中实现页面工厂
分页将内容在页面之间划分,并允许用户在页面之间跳过或按顺序浏览内容。您可以通过实例化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);
}
}输出结果