我正在制作一个使用设置菜单的应用程序,该菜单是通过与应用程序主要阶段不同的阶段实现的。单击按钮即可显示它,我想知道javafx是否提供一种默认使舞台出现在屏幕中央的方法,对我来说,它出现在左上方。似乎我缺少了一些东西,因为这种事情是在其他应用程序的警报对话框中发生的,但是Dialog(或Alert)类不是理想的,因为我的目标并不真正适合单个输入,例如出现在对话框中。
相关代码:
Button settings = new Button();
Image image = new Image(getClass().getResourceAsStream("gear.png"));
settings.setGraphic(new ImageView(image));
settings.setFocusTraversable(false);
grid.add(settings, 1, 2);
settings.setOnAction(e -> {
Stage settingsStage = new Stage();
settingsStage.initModality(Modality.APPLICATION_MODAL);
//Neither centerOnScreen() or the setX, setY lines change where the stage appears
//setY and setX work themselves out if they do not rely on stage
//settingsStage.centerOnScreen();
//settingsStage.setX(stage.getX() + stage.getWidth() / 2 - settingsStage.getWidth() / 2);
//settingsStage.setY(stage.getY() + stage.getHeight() / 2 - settingsStage.getHeight() / 2);
settingsStage.show();
});
供参考,我在Mac上使用javafx 8
最佳答案
这个问题应该有您想要的内容:Center location of stage
您只需要在其开始方法中设置舞台的坐标即可。