Boa noite!
Gostaria de uma ajuda do pessoal da comunidade! Então, no meu projeto, tenho uma tela principal com um controller que tem uma tab pane. Porém meu menu principal dessa tela é um side menu que tem seu próprio controller e fxml. Gostária de saber como ao clicar em uma opção do menu, abrir uma guia na tab pane da tela principal.
Controller da Tela Principal:
package br.com.pizzamanager.controller;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import com.jfoenix.controls.JFXDrawer;
import com.jfoenix.controls.JFXHamburger;
import com.jfoenix.controls.JFXTabPane;
import com.jfoenix.controls.JFXToolbar;
import com.jfoenix.transitions.hamburger.HamburgerBackArrowBasicTransition;
import br.com.pizzamanger.util.Constants;
import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
public class FXMLTelaPrincipalController implements Initializable {
@FXML private StackPane stackpanePrincipal;
@FXML private JFXToolbar toolBar;
@FXML private JFXHamburger navMenu;
@FXML private AnchorPane paneDesktop;
@FXML private JFXDrawer drawerMenu;
@FXML private JFXTabPane tabPane;
@Override
public void initialize(URL url, ResourceBundle rb) {
transicaoMenuPrincipal();
}
//O Bloco de instruções abaixo realizam a transição do navBar: menu principal fechado ou aberto
private void transicaoMenuPrincipal() {
try {
VBox menu = FXMLLoader.load(getClass().getResource(Constants.sideMenuView));
drawerMenu.setSidePane(menu);
drawerMenu.setDefaultDrawerSize(120);
HamburgerBackArrowBasicTransition transition = new HamburgerBackArrowBasicTransition(navMenu);
transition.setRate(-1);
navMenu.addEventHandler(MouseEvent.MOUSE_CLICKED, (Event event) -> {
transition.setRate(transition.getRate() * -1);
transition.play();
if (drawerMenu.isOpened()) {
drawerMenu.close();
} else {
drawerMenu.open();
}
});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Controller do Side Menu:
package br.com.pizzamanager.controller;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import com.jfoenix.controls.JFXButton;
import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
public class FXMLSideMenuController implements Initializable {
@FXML private VBox vboxMenu;
@FXML private Pane paneMenu;
@FXML private JFXButton btnPedido;
@FXML private MaterialDesignIconView iconBtnPedido;
@FXML private JFXButton btnCaixa;
@FXML private MaterialDesignIconView iconBtnCaixa;
@FXML private JFXButton btnCadastro;
@FXML private MaterialDesignIconView iconBtnCadastro;
@FXML private JFXButton btnRelatorio;
@FXML private MaterialDesignIconView iconBotaoRelatorio;
@FXML private JFXButton btnUtilitario;
@FXML private MaterialDesignIconView iconBtnUtilitario;
@FXML private JFXButton btnEstoque;
@FXML private MaterialDesignIconView iconBtnEstoque;
@FXML private JFXButton btnSair;
@FXML private MaterialDesignIconView iconBtnSair;
@FXML
void actionBtnCadastro(ActionEvent event) throws IOException {
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}