Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package testjavafx;
- import javafx.application.Application;
- import javafx.beans.value.ChangeListener;
- import javafx.beans.value.ObservableValue;
- import javafx.scene.Scene;
- import javafx.scene.control.Tab;
- import javafx.scene.control.TabPane;
- import javafx.scene.control.TabPane.TabClosingPolicy;
- import javafx.scene.layout.StackPane;
- import javafx.stage.Stage;
- public class TestJavaFx extends Application {
- private TabPane tabPane;
- private Tab addTab;
- private Tab currentTab;
- @Override
- public void start(Stage primaryStage) {
- //Create the tab pane and the 'addTab' for adding new tabs.
- tabPane = new TabPane();
- tabPane.setTabClosingPolicy(TabClosingPolicy.SELECTED_TAB);
- addTab = new Tab("+");
- addTab.setClosable(false);
- tabPane.getTabs().add(addTab);
- //Add a listener to listen for changes to tab selection.
- tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Tab>() {
- @Override
- public void changed(ObservableValue<? extends Tab> observable, Tab oldSelectedTab, Tab newSelectedTab) {
- //If we change to the addTab create a
- //new tab and change selection.
- if (newSelectedTab == addTab) {
- //Create the new tab.
- createNewTab();
- } else {
- currentTab = newSelectedTab;
- }
- }
- });
- //Create a new tab for initial load of the app
- createNewTab();
- StackPane root = new StackPane();
- root.getChildren().add(tabPane);
- Scene scene = new Scene(root, 500, 500);
- primaryStage.setTitle("Tab Test");
- primaryStage.setScene(scene);
- primaryStage.show();
- }
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- launch(args);
- }
- private Tab createNewTab() {
- Tab newTab = new Tab("New Tab");
- newTab.setClosable(true);
- tabPane.getTabs().add(tabPane.getTabs().size() - 1, newTab);
- tabPane.getSelectionModel().select(newTab);
- return newTab;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement