【问题标题】:Loading fxml files inside a main fxml file在主 fxml 文件中加载 fxml 文件
【发布时间】:2014-01-21 07:39:42
【问题描述】:

我有一个包含多个菜单的主 fxml 文件。当用户单击某些按钮时,内容会发生变化,这些内容是加载在主屏幕上的单独的 fxml 文件。整个场景没有改变,而是只有一部分场景发生了变化。这是我想要制作的应用程序的简单原型![在此处输入图像描述][1]

https://www.dropbox.com/s/3nildyt004v32vc/fxml%20application.png

【问题讨论】:

    标签: java javafx fxml


    【解决方案1】:

    试试这个..

        AnchorPane pane; // pane where fxml was showing
        menu1.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent t) {
            openNewWindow("m1.fxml");
    
        }
        });
        menu2.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent t) {            
            openNewWindow("m2.fxml");
    
        }});
        menu3.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent t) {            
            openNewWindow("m3.fxml");
    
        }
        }); 
    

    函数openNewWindow

    public void openNewWindow(String FXMLFile)
     {
         //ChildNode child;
        try {                    
            URL url = getClass().getResource(FXMLFile);
            FXMLLoader fxmlLoader = new FXMLLoader();
            fxmlLoader.setLocation(url);
            fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory());
            AnchorPane page = (AnchorPane) fxmlLoader.load(url.openStream()); 
    
            Pane.getChildren().clear();///name of pane where you want to put the fxml
            Pane.getChildren().add(page);
        } 
        catch (IOException e) {
            e.printStackTrace();
        }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 2019-08-09
      • 2016-01-07
      相关资源
      最近更新 更多