import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class TabPaneTest extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) throws Exception { TabPane tabPane = new TabPane(); addNewTab(tabPane); Scene scene = new Scene(tabPane, 320, 240); stage.setScene(scene); stage.setVisible(true); } private void addNewTab(final TabPane tabPane) { VBox vbox = new VBox(); vbox.setPadding(new Insets(10)); vbox.setSpacing(10); Button button = new Button("New tab"); button.setOnAction(new EventHandler() { public void handle(ActionEvent t) { addNewTab(tabPane); } }); vbox.getChildren().add(button); Tab tab = new Tab("Test"); tab.setContent(vbox); tabPane.getTabs().add(tab); tabPane.getSelectionModel().select(tab); } }