Как мне установить вкладку для tabpane в Javafx? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь создать кнопку в моей вкладке, которая может переключаться на другую вкладку (0 → 1).

Это для создания программы чата с использованием Javafx, и в настоящее время я использую Scenebuilder дляразработать графический интерфейс.

myTabPane_1.getSelectionModel().select(1);

Я ожидаю, что он изменится с табуляции № 0 на индекс № 1, но он останется прежним.

1 Ответ

0 голосов
/ 07 ноября 2019

Есть что-то, что вы не показываете в своем коде, и потому что вы не предоставили достаточно информации, никто не сможет помочь вам изменить ваш код, так что вот рабочий пример того, как изменить вкладки, используя индекс и передаваяфактическая вкладка

public class Main extends Application {

    @Override
    public void start(Stage stage) {
        VBox vBox = new VBox();
        vBox.setAlignment(Pos.CENTER);

        Tab tabOne = new Tab("Tab One", new Label("This is Tab One"));
        Tab tabTwo = new Tab("Tab Two", new Label("This is Tab Two"));

        TabPane tabPane = new TabPane();
        tabPane.getTabs().addAll(tabOne, tabTwo);

        vBox.getChildren().add(tabPane);

        Button button = new Button("Change Tab by passing index");
        button.setOnAction(event -> {
            if(tabPane.getSelectionModel().getSelectedItem().getText().equals("Tab One"))
                tabPane.getSelectionModel().select(1);
            else
                tabPane.getSelectionModel().select(0);
        });
        vBox.getChildren().add(button);

        Button buttonTwo = new Button("Change Tab by passing tab");
        buttonTwo.setOnAction(event -> {
            if(tabPane.getSelectionModel().getSelectedItem().getText().equals("Tab One"))
                tabPane.getSelectionModel().select(tabTwo);
            else
                tabPane.getSelectionModel().select(tabOne);
        });
        vBox.getChildren().add(buttonTwo);

        stage.setScene(new Scene(vBox));
        stage.show();
    }
}
...