有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从选项卡中打开新选项卡并选择新选项卡

我对如何从已打开的选项卡打开选项卡感兴趣。例如,我想打开新选项卡并自动将其激活

public class Main extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Tabs");
        Group root = new Group();
        Scene scene = new Scene(root, 400, 250, Color.WHITE);

        TabPane tabPane = new TabPane();

        BorderPane borderPane = new BorderPane();
        for (int i = 0; i < 5; i++) {
            Tab tab = new Tab();
            tab.setText("Tab" + i);
            HBox hbox = new HBox(new Button("Open new tab"));
            hbox.getChildren().add(new Label("Tab" + i));
            hbox.setAlignment(Pos.CENTER);
            tab.setContent(hbox);
            tabPane.getTabs().add(tab);
        }

        borderPane.setCenter(tabPane);
        root.getChildren().add(borderPane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

}

有没有办法做到这一点


共 (1) 个答案

  1. # 1 楼答案

    我不太确定,但我相信你想要这样的东西:

    public class Main extends Application {
    
        public static void main(String[] args) {
            Application.launch(args);
        }
    
        @Override
        public void start(Stage primaryStage) {
            primaryStage.setTitle("Tabs");
            Group root = new Group();
            Scene scene = new Scene(root, 400, 250, Color.WHITE);
    
            final TabPane tabPane = new TabPane();
    
            BorderPane borderPane = new BorderPane();
            for (int i = 0; i < 5; i++) {
                Tab tab = new Tab();
                tab.setText("Tab" + i);
                Button btn = new Button("Open new tab");
                btn.setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent e) {
                        int j = tabPane.getTabs().size();
                        Tab tab = new Tab();
                        tab.setText("Tab" + j);
                        Label newTabLabel = new Label("The new and Awesome selected:");
                        HBox hbox = new HBox(newTabLabel);
                        hbox.getChildren().add(new Label("Tab" + j));
                        hbox.setAlignment(Pos.CENTER);
                        tab.setContent(hbox);
                        tabPane.getTabs().add(tab);
                        tabPane.getSelectionModel().select(j);
                    }
                });
                HBox hbox = new HBox(btn);
                hbox.getChildren().add(new Label("Tab" + i));
                hbox.setAlignment(Pos.CENTER);
                tab.setContent(hbox);
                tabPane.getTabs().add(tab);
            }
    
            borderPane.setCenter(tabPane);
            root.getChildren().add(borderPane);
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    
    }