JavaFX - 分頁



分頁控制元件是一個 UI 元件,允許使用者瀏覽內容的不同頁面。例如,我們可以使用此功能來顯示搜尋結果、文章、影像或任何其他需要多個頁面的內容型別。一個典型的分頁控制元件具有頁面導航區域、上一頁按鈕和下一頁按鈕,如下面的圖所示 -

Sample Pagination

在 JavaFX 中建立分頁

在 JavaFX 中,分頁控制元件是透過例項化名為Pagination的類建立的。此類屬於javafx.scene.control包。此類的建構函式列出如下 -

  • Pagination() - 它將生成一個沒有頁面計數的分頁控制元件,並且預設頁面索引將為零。但是,我們也可以使用此預設建構函式,並稍後使用setPageCount()setCurrentPageIndex()方法設定這些屬性。
  • Pagination(int pageCount) - 它將建立一個具有指定頁面數的分頁控制元件。
  • Pagination(int pageCount, int currentIndex) - 它使用給定的頁面數和頁面索引構造一個新的 Pagination 控制元件。

在 JavaFX 中建立分頁時,我們的第一步將是使用上面提到的任何一個建構函式例項化 Pagination 類。接下來,透過將 Pagination 物件傳遞給其建構函式來定義一個佈局窗格,例如 Vbox 或 Hbox。最後,設定場景和舞臺以在螢幕上顯示分頁控制元件。

示例

以下 JavaFX 程式演示瞭如何在 JavaFX 應用程式中建立 Pagination。將此程式碼儲存在名為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

輸出

當我們執行上述程式碼時,它將生成以下輸出。

Pagination Output

定義當前索引頁面

Pagination 類的建構函式之一接受兩個引數,即頁面計數和當前索引。每當我們使用此建構函式時,它將生成一個具有指定頁面數和當前選定索引號的分頁控制元件。

示例

在下面的示例中,我們正在建立一個當前選定索引號為 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

輸出

執行上述程式碼後,它將生成以下輸出。

Pagination Output2
廣告

© . All rights reserved.