我正在制作一个使用设置菜单的应用程序,我已经实现了使用与应用程序主阶段不同的阶段。它显示在一个按钮单击,我想知道如果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
这个问题应该有你想要的:舞台中心位置
你只需要在它的start方法中设置舞台的坐标