Como eu faço para alternar entre os nodes dentro do StackPane no JavaFX?

4 respostas Resolvido
java
Thallysson

Olá. Eu preciso adicionar no meu programa algo semelhante ao CardLayout do Swing, então eu pesquisei e encontrei o StackPane, já adicionei os nodes nele, e agora, alguém sabe me dizer como eu faço para alternar entre eles? Eu vi em um link, porém lá o o controller adicionava um e removia o outro. Essa é a única alternativa ou existe algo como o show do CardLayout?

4 Respostas

Roberto_Teixeira
Solucao aceita

Veja se isso te ajuda…

VBox vbox = new VBox();

Button btnCard1 = new Button("CARD 1");
Button btnCard2 = new Button("CARD 2");
Button btnCard3 = new Button("CARD 3");

Pane sp = new StackPane();
Group group1 = new Group(new Label("LAYOUT CARD 1"));
Group group2 = new Group(new Label("LAYOUT CARD 2"));
Group group3 = new Group(new Label("LAYOUT CARD 3"));

btnCard1.setOnAction(new EventHandler<ActionEvent>() {
    public void handle(ActionEvent t) {
        sp.getChildren().clear();   // <--- seu StackPane !
        sp.getChildren().add(group1); // <-- adiciona Group ao StackPane !
    }
});

// etc, etc...

vbox.setPrefSize(300,300);
vbox.getChildren().addAll(btnCard1,btnCard3,btnCard3,sp);
 
stage.setScene(new Scene(vbox));
Thallysson

Vamos ver se eu entendi, eu tenho que adicionar os nodes dentro dos groups e os groups dentro do stackpane, e alternar entre os groups?

Roberto_Teixeira

Cada botão, exclui e inclui novo Node ( Group ) ao StackPane

Thallysson

Entendi. Valeu.

Criado 3 de fevereiro de 2017
Ultima resposta 4 de fev. de 2017
Respostas 4
Participantes 2