java - 设置javafx阶段的初始位置

标签 java javafx

我正在制作一个使用设置菜单的应用程序,我使用与应用程序主阶段不同的阶段来实现该菜单。它显示在单击按钮上,我想知道 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/

相关文章:

Javafx 可编辑表格单元格

JavaFX 窗口在左上角打开然后跳到中心

java - 如何将Array方法转换为ArrayList方法?

java - 创建 1,000 个包含 100,000 个数字的数组

java swingworker 线程更新主 Gui

java - 工具提示不换行/忽略最大宽度

java - Gradle OpenJFx11 : Error - JavaFx runtime components are missing

java - 匹配也包含括号的字符串的正则表达式

java - Spring 框架 - Kotlin - 将实体保存到 XML

java - 循环中的 PathTransition