当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。