我有两个类--menu和--game他们都使用fxml文件来加载他们的场景我在菜单中有一个按钮我想要如果用户点击按钮,我的菜单中的阶段,传递到游戏并更改场景到游戏类的新场景
菜单:
public class menu extends application{
....
public void start(Stage stage) throws IOException{
StackPane loader = FXMLLoader.load(getClass().getResource("layout/startUp.fxml"));
stage.setScene(new Scene(loader));
stage.show();//show stage
}
....
}
游戏:
public class game{
public void start(Stage stage) throws IOException{
StackPane root = FXMLLoader.load(getClass().getResource("layout/game.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
}
}
菜单控制器:
public class menuController implements Initializable{
@FXML Button playButton;
@Override
public void initialize(URL location, ResourceBundle resources) {
playButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
/*
now i want to do something like this
*/
game g = new game();
g.start(stage);//this stage is from menu
}
});
}
任何想法?提前感谢
答案 0 :(得分:2)
我解决了我的问题 我的错误是:
我在我的fxml文件中使用fx:controller
设置我的控制器我删除了因为我需要将阶段传递给我的menuController,我在菜单类的start方法中使用setController方法设置控制器并给{{1 to setController方法