我正在制作一个使用设置菜单的应用程序,我使用与应用程序主阶段不同的阶段来实现该菜单。它显示在单击按钮上,我想知道 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
您只需在其 start 方法中设置舞台的坐标即可。
关于java - 设置javafx阶段的初始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31900207/