JavaFX TabPane

时间:2020-01-09 10:36:41  来源:igfitidea点击:

JavaFX TabPane是一个容器控件,可以在内部包含多个选项卡(部分),可以通过单击标题位于TabPane顶部的选项卡来显示这些选项卡。一次仅显示一个标签。就像纸质文件夹,其中一个文件夹是打开的。 JavaFX TabPane控件由javafx.scene.control.TabPane类实现。这是JavaFX TabPane的屏幕截图:

在此屏幕快照中,中间选项卡具有焦点,这意味着已经单击了中间选项卡的标题。

完整的JavaFX TabPane示例

这是完整的JavaFXTabPane代码示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TabPane;
import javafx.scene.control.Tab;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TabPaneExample extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    public void start(Stage primaryStage) {

        TabPane tabPane = new TabPane();

        Tab tab1 = new Tab("Planes", new Label("Show all planes available"));
        Tab tab2 = new Tab("Cars"  , new Label("Show all cars available"));
        Tab tab3 = new Tab("Boats" , new Label("Show all boats available"));

        tabPane.getTabs().add(tab1);
        tabPane.getTabs().add(tab2);
        tabPane.getTabs().add(tab3);

        VBox vBox = new VBox(tabPane);
        Scene scene = new Scene(vBox);

        primaryStage.setScene(scene);
        primaryStage.setTitle("JavaFX App");

        primaryStage.show();
    }
}

创建一个TabPane

为了使用JavaFXTabPane,我们必须首先创建TabPane类的实例。这是创建JavaFXTabPane类的实例的示例:

TabPane tabPane = new TabPane();

将选项卡添加到TabPane

要显示任何内容,必须将一个或者多个选项卡添加到JavaFXTabPane。标签由javafx.scene.control.Tab类表示。这是向JavaFXTabPane添加3个标签的示例:

TabPane tabPane = new TabPane();

Tab tab1 = new Tab("Planes", new Label("Show all planes available"));
Tab tab2 = new Tab("Cars"  , new Label("Show all cars available"));
Tab tab3 = new Tab("Boats" , new Label("Show all boats available"));

tabPane.getTabs().add(tab1);
tabPane.getTabs().add(tab2);
tabPane.getTabs().add(tab3);

上例中使用的Tab构造函数带有两个参数。第一个参数是标题,该标题显示在选项卡顶部的"句柄"中,单击以显示该选项卡。第二个参数是JavaFX根控件,其中包含要在选项卡的主体部分内显示的内容。在上面的示例中,使用了一个简单的JavaFX Label,但是在实际的应用程序中,使用一个容器控件其中包含其他嵌套控件会更加正常。例如,JavaFX VBox,JavaFX HBox,JavaFX Flowpane,JavaFX TilePane或者JavaFX GridPane。

获取所选标签

我们可以通过TabPane``getSelectionModel()。getSelectedItem()方法获取在JavaFXTabPane中当前选中的(Tab)。这是从JavaFXTabPane获取当前选择的Tab的示例:

Tab selectedTab = tabPane.getSelectionModel().getSelectedItem();