我如何从MenuItem获取场景?我试过这段代码:
public class MainController implements Initializable {
@FXML
private MenuBar menuBar;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
@FXML
public void show(ActionEvent event) throws IOException{
Parent root = FXMLLoader.load(getClass().getResource("FXML.fxml"));
Scene scene = new Scene(root);
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stage.initOwner(menuBar.getScene().getWindow());
stage.show();
}
}
上面的代码不会产生错误,但它不显示窗口!!!
答案 0 :(得分:1)
好吧,在Controller类中,使用getter和setter为Scene添加一个变量。 然后你可以做这样的事情:
@Override
public void start(Stage primaryStage)throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("path/to/fxml"));
Parent root = loader.load();
MainController mainControls = loader.getController();
Scene scene = new Scene(root, 300, 250);
mainControls.setScene(scene);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
现在该场景可用于该班级中的所有项目。
看起来您正在尝试创建各种对话?
如果是这样的话,请不要使用主场景...创建一个新的舞台并显示它的内容...
虽然我相信JDK现在支持Dialog。