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.
类的构造函数:
- TabPane() :创建一个没有标签的新 TabPane。
- TabPane(Tab... t) : 创建一个带有指定选项卡的新 TabPane。
常用方法:
Method | Explanation |
---|---|
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 类的使用:
- 用于创建多个选项卡并将其添加到 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); } }
输出:
- 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