Bom dia pessoal, preciso de ajuda, possuo um fxml que tem como principal um BorderPane e dentro dele no centro tem um outro BorderPane:
@FXML
public BorderPane borderPane_Pai;
@FXML
public BorderPane borderPane_Filho;
Quando eu executo o sistema ele abre esse fxml e adiciona no “borderPane_Filho” na parte superior um fxml que contem um menu com botões e na parte central um fxml vazio:
@Override
public void initialize(URL url, ResourceBundle rb) {
try {
Parent menuSuperior = FXMLLoader.load(getClass().getResource("/br/com/pcp/view/menuSuperior.fxml"));
borderPane_Filho.setTop(menuSuperior);
Parent telaCentral = FXMLLoader.load(getClass().getResource("/br/com/pcp/view/menuVazio.fxml"));
borderPane_Filho.setCenter(telaCentral);
} catch (IOException ex) {
Logger.getLogger(menuAreaController.class.getName()).log(Level.SEVERE, null, ex);
}
}
Quando eu clico no botão do menu superior ele exibe um menu lateral no “borderPane_Pai” na parte esquerda um fxml que contem vários botoes:
boolean flag = true;
@FXML
private void open_menuLateral(ActionEvent event) throws IOException {
BorderPane borderPane_Pai = (BorderPane) ((Node) event.getSource()).getScene().getRoot();
if (flag == true) {
Parent menuLateral = FXMLLoader.load(getClass().getResource("/br/com/pcp/view/menuLateral.fxml"));
borderPane_Pai.setLeft(menuLateral);
flag = false;
} else {
borderPane_Pai.setLeft(null);
flag = true;
}
}
Até aqui tudo funcionando perfeitamente.
Agora ao clicar em um desse labels do menu lateral quero que seja adicionado o fxml correspondente ao centro do “borderPane_Filho”. Porém ao clicar, o meu método está adicionando o fxml ao centro do “borderPane_Pai” sobrepondo o menu superior:
@FXML
protected void open_Recebimento(MouseEvent event) throws IOException {
BorderPane borderPane_Filho = (BorderPane) ((Node) event.getSource()).getScene().getRoot(); //Acho que aqui é que está o erro
Parent menuRecebimento = FXMLLoader.load(getClass().getResource("/br/com/pcp/view/menuRecebimento.fxml"));
borderPane_Filho.setCenter(null); //Aqui deveria adicionar ao centro do borderPane_Filho
borderPane_Filho.setCenter(menuRecebimento);
}
Veja o método acima, eu acho que aqui é que estou errando:
BorderPane borderPane_Filho = (BorderPane) ((Node) event.getSource()).getScene().getRoot();
Preciso de ajuda para achar uma forma de pegar o “borderPane_Filho” nessa linha de código ai daria certo.