當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaFX 類 TabPane用法及代碼示例


TabPane類是JavaFX的一部分。 TabPane允許在多個選項卡之間切換。 TabPane充當選項卡的容器。可以使用setSide()函數指定選項卡的位置。當選項卡不適合TabPane時,TabPane的右上角會出現一個菜單按鈕,其中顯示了Tabpane的所有選項卡。

該類的構造函數:

  1. TabPane():創建沒有標簽的新TabPane。
  2. TabPane(Tab… t):使用指定的標簽創建一個新的TabPane。

常用方法:


方法 說明
getSide() 返回選項卡在TabPane上的當前位置
getTabs() 返回TabPane的選項卡。
setSide(Side v) 將選項卡放置在此TabPane中的位置。
setSelectionModel(SingleSelectionModel v) 設置用於選項卡選擇的模型。
getSelectionModel() 返回選項卡選擇的選擇模型。
getTabMaxHeight() 返回TabPane中選項卡的最大高度。
getTabMinHeight() 返回TabPane中選項卡的最小高度。
getTabMaxWidth() 返回TabPane中選項卡的最大寬度。
getTabMinWidth() 返回TabPane中選項卡的最小寬度。
setTabMaxHeight(double v) 設置TabPane中選項卡的最大高度。
setTabMinHeight(double v) 設置TabPane中選項卡的最小高度。
setTabMaxWidth(double v) 設置TabPane中選項卡的最大寬度。
setTabMinWidth(double v) 設置TabPane中選項卡的最小寬度。

以下示例程序旨在說明TabPane類的用法:

  1. Java程序創建多個選項卡並將其添加到TabPane:在此程序中,我們將創建一個名為tabpane的Tabpane。要添加多個選項卡,我們將使用for循環,然後將選項卡添加到選項卡窗格。創建一個名為tab的選項卡。我們還將創建一個名為label的Label。我們將使用函數setContent()將標簽添加到選項卡。選項卡的標題將作為參數傳遞。現在創建一個名為tabpane的TabPane並將該選項卡添加到該選項卡中。之後,將Tabpane添加到場景,然後將場景添加到舞台,並使用show()函數顯示舞台。
    // Java program to create multiple tabs  
    // and add it to the TabPane 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.scene.Group; 
    import javafx.scene.control.*; 
      
    public class TabPane_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            // set title for the stage 
            stage.setTitle("Creating Tab"); 
      
            // create a tabpane 
            TabPane tabpane = new TabPane(); 
      
            // create multiple tabs 
            for (int i = 0; i < 10; i++) { 
      
                // create Tab 
                Tab tab = new Tab("Tab_" + (int)(i + 1)); 
      
                // create a label 
                Label label = new Label("This is Tab:" + (int)(i + 1)); 
      
                // add label to the tab 
                tab.setContent(label); 
      
                // add tab 
                tabpane.getTabs().add(tab); 
            } 
      
            // create a scene 
            Scene scene = new Scene(tabpane, 600, 500); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String args[]) 
        { 
      
            // launch the application 
            launch(args); 
        } 
    }

    輸出:

  2. Java程序創建多個選項卡並將其添加到TabPane中,還創建一個選項卡,該選項卡在選定時將創建新的選項卡:在此程序中,我們將創建一個名為tabpane的Tabpane。我們將在標簽窗格中添加多個標簽。要添加多個標簽,我們將使用for循環。我們將創建一個名為tab的Tab。現在創建一個名為label的Label。我們將使用函數setContent()在標簽上添加標簽。我們還將創建一個名為newtab的標簽。選中後,將創建一個新選項卡。通過使用setOnSelectionChanged()函數將事件處理程序添加到選項卡。事件處理程序將使用getTabs().add()函數創建一個新選項卡,並將其添加到選項卡窗格中的新選項卡之前,並使用getSelectionModel().select()函數選擇最後一個選項卡。選項卡的標題將作為參數傳遞。我們將創建一個名為tabpane的TabPane,並將該選項卡添加到該Tabpane中,然後將該Tabpane添加到場景中,並將場景添加到舞台中。使用show()函數顯示舞台。
    // Java program to create multiple tabs and 
    // add it to the tabPane and also create a  
    // tab which on selected will create new tabs 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.scene.Group; 
    import javafx.scene.control.*; 
    import javafx.event.Event; 
    import javafx.event.EventHandler; 
      
    public class TabPane_2 extends Application { 
      
    // counter of tabs 
    int counter = 0; 
      
    // launch the application 
    public void start(Stage stage) 
    { 
      
        // set title for the stage 
        stage.setTitle("Creating Tab"); 
      
        // create a tabpane 
        TabPane tabpane = new TabPane(); 
      
        for (int i = 0; i < 5; i++) { 
      
            // create Tab 
            Tab tab = new Tab("Tab_" + (int)(counter + 1)); 
      
            // create a label 
            Label label = new Label("This is Tab:" 
                            + (int)(counter + 1)); 
      
            counter++; 
      
            // add label to the tab 
            tab.setContent(label); 
      
            // add tab 
            tabpane.getTabs().add(tab); 
        } 
      
        // create a tab which 
        // when pressed creates a new tab 
        Tab newtab = new Tab(); 
      
        // action event 
        EventHandler<Event> event =  
        new EventHandler<Event>() { 
      
            public void handle(Event e) 
            { 
                if (newtab.isSelected())  
                { 
      
                    // create Tab 
                    Tab tab = new Tab("Tab_" + (int)(counter + 1)); 
      
                    // create a label 
                    Label label = new Label("This is Tab:" 
                                     + (int)(counter + 1)); 
      
                    counter++; 
      
                    // add label to the tab 
                    tab.setContent(label); 
      
                    // add tab 
                    tabpane.getTabs().add( 
                            tabpane.getTabs().size() - 1, tab); 
      
                    // select the last tab 
                    tabpane.getSelectionModel().select( 
                            tabpane.getTabs().size() - 2); 
                } 
            } 
        }; 
      
        // set event handler to the tab 
        newtab.setOnSelectionChanged(event); 
      
        // add newtab 
        tabpane.getTabs().add(newtab); 
      
        // create a scene 
        Scene scene = new Scene(tabpane, 600, 500); 
      
        // set the scene 
        stage.setScene(scene); 
      
        stage.show(); 
    } 
      
    // Main Method 
    public static void main(String args[]) 
    { 
      
        // launch the application 
        launch(args); 
    } 
    }

    輸出:

注意:以上程序可能無法在在線IDE中運行。請使用離線編譯器。

參考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TabPane.html



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | TabPane Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。