2017-10-11 4 views
0

En fait, je crée un programme basé sur Menu (barre de menu, menu, menuitem). À partir de chaque élément de menu, appelez la nouvelle fenêtre comme ça. Maintenant, j'ai un écran Window2 fxml avec 1 tableview, à l'intérieur de cette table, je place un bouton dans chaque rangée.
Mon problème est de savoir comment charger une nouvelle page fxml et disposer de la page fxml actuelle quand j'ai cliqué sur ce bouton.disposer la fenêtre courante et charger la nouvelle fenêtre fxml sur la fenêtre principale

En balançant nous disposons simplement l'Internalframe actuel et appelé nouvelle Internalframe. quelque chose comme .

StdInternalFrame f = new StdInternalFrame(desktop); 
this.dispose(); 
desktop.add(f); 

enter image description here

Est-ce une autre meilleure façon de le faire

 

    btnPay.setOnAction(e -> {  
    try {  
     MemberWindowController.root.getChildren().clear();  
     Pane newLoadedPane = (Pane)FXMLLoader.load(getClass().getResource("Window3.fxml"));  
     MemberWindowController.root.getChildren().add(newLoadedPane);  
     } catch (IOException ex) {  
     Logger.getLogger(Window3Controller.class.getName()).log(Level.SEVERE, null, ex);  
     }  
    }); 


Répondre

0

c'est en fait très simple, il vous suffit de remplir le code ci-dessous chaque fois que vous voulez fermer une étape:

Node node = (Node)event.getSource(); 
Stage stage = (Stage) node.getScene().getWindow(); 
stage.close(); 

les mots "événement" se rapportent à votre ActionEvent comme:

public void something(ActionEvent event){ 

} 

essayer, fonctionnera parfaitement.

+0

Votre code ferme ma fenêtre actuelle sans application. – kar