📜  JavaFX | TabPane 类

📅  最后修改于: 2022-05-13 01:54:36.143000             🧑  作者: Mango

JavaFX | TabPane 类

TabPane 类是 JavaFX 的一部分。 TabPane 允许在多个选项卡之间切换。 TABPANE充当标签的容器。可以使用 setSide()函数指定选项卡的位置。 when the tabs do not fit in the TabPane, a menu button appears at the upper right corner of TabPane which displays all the tabs of the Tabpane.

类的构造函数:

  1. TabPane() :创建一个没有标签的新 TabPane。
  2. TabPane(Tab... t) : 创建一个带有指定选项卡的新 TabPane。

常用方法:

MethodExplanation
getSide()Returns the current position of tabs on the TabPane
getTabs()Returns the tabs of the TabPane.
setSide(Side v)The position to place the tabs in this TabPane.
setSelectionModel(SingleSelectionModel v)Sets the model used for tab selection.
getSelectionModel()Returns the selection model for tab selection.
getTabMaxHeight()Returns the max height of the tab in TabPane.
getTabMinHeight()Returns the min height of the tab in TabPane.
getTabMaxWidth()Returns the max Width of the tab in TabPane.
getTabMinWidth()Returns the min Width of the tab in TabPane.
setTabMaxHeight(double v)Sets the max height of the tab in TabPane.
setTabMinHeight(double v)Sets the min height of the tab in TabPane.
setTabMaxWidth(double v)Sets the max width of the tab in TabPane.
setTabMinWidth(double v)Sets the min width of the tab in TabPane.

下面的程序说明了 TabPane 类的使用:

  1. 用于创建多个选项卡并将其添加到 TabPane 的Java程序:在此程序中,我们将创建一个名为 tabpane 的Tabpane 。要添加多个选项卡,我们将使用 for 循环,然后将选项卡添加到tabpane 。创建一个名为tab的选项卡。我们还将创建一个名为label的标签。我们将使用函数setContent()将标签添加到选项卡。选项卡的标题将作为参数传递。现在创建一个名为tabpane的 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 。我们将向tabpane添加多个选项卡。要添加多个选项卡,我们将使用 for 循环。我们将创建一个名为tab的选项卡。现在创建一个名为label的标签。我们将使用函数setContent()向选项卡添加标签。我们还将创建一个名为newtab的选项卡。当它被选中时,它将创建一个新选项卡。使用setOnSelectionChanged()函数将事件处理程序添加到选项卡。事件处理程序将创建一个新选项卡并使用getTabs().add()函数将其添加到tabpane中的新选项卡之前,并使用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 = 
        new EventHandler() {
      
            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