你好我有一个几乎没有控制器的JavaFX应用程序,我有2个选项可以回到上一个屏幕 . 用户可以单击“离开”按钮,或者在此屏幕上完成某些任务后将自动移至上一个 . 我有问题,因为我已经创建了方法wiut fxml注释,它将ActionEvent对象作为参数并在用户单击按钮时调用,当用户完成任务并应自动移动到上一个屏幕时我无法调用此方法,因为我没有这个对象,它是在动作时创建的 - 在这种情况下单击 . 如何使两个'退出'选项成为可能?
所以这是我的方法,我的按钮使用'onAction':
@FXML
private void leaveRoomAction(ActionEvent event) {
try {
removePlayerFromRoom();
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("LobbyView.fxml"));
Parent root = (Parent) loader.load();
LobbyController lobbyController = (LobbyController)loader.getController();
lobbyController.setClientThread(client);
lobbyController.setNameAndBalance(client.getPlayer().getName());
Scene scene = new Scene(root);
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
stage.setScene(scene);
stage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
后来在程序的其他部分:
if(isFinished()){
//here I want write leaving this screen and getting back to previous
}
1 回答
首先,找到另一种方法来获得对
Stage
的引用 . 由于您几乎肯定会在控制器中引用场景中的某个节点,因此可以替换同
其中
anyNode
只是你注入控制器的东西 .现在你根本不需要参数,所以你可以删除它 . 即你结束了
现在你可以调用方法: