0
我有一个带有几个菜单的主fxml文件。当用户点击某些按钮时,内容会改变,这些内容是在主屏幕上加载的独立fxml文件。整个场景不会改变,但只有场景的一部分会改变。下面是我想要的应用程序的一个简单的原型![在这里输入的形象描述] [1]在主fxml文件中加载fxml文件
https://www.dropbox.com/s/3nildyt004v32vc/fxml%20application.png
我有一个带有几个菜单的主fxml文件。当用户点击某些按钮时,内容会改变,这些内容是在主屏幕上加载的独立fxml文件。整个场景不会改变,但只有场景的一部分会改变。下面是我想要的应用程序的一个简单的原型![在这里输入的形象描述] [1]在主fxml文件中加载fxml文件
https://www.dropbox.com/s/3nildyt004v32vc/fxml%20application.png
试试这个..
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();
}
}