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();
}
}