【问题标题】:How to center a popup?如何使弹出窗口居中?
【发布时间】:2017-04-25 17:53:59
【问题描述】:

所以我在弹出窗口中使用 jfoenix JFXPopup 组件。在终于让弹出窗口显示之后。我意识到弹出窗口是相对于您传递它的所有者节点显示的。我的问题是有什么方法可以显示相对于场景的弹出窗口以便我可以居中?

很遗憾,您不能将弹出窗口置于所有者节点的中心,您只能上下或左右移动它?

Popup relative to the search textfield in the middle of the application

//Current Code
@FXML
    protected void handleLoginButton(ActionEvent event) {
        System.out.println("Popup BUtton clicked");
        if (!loginPopup.isShowing()) {
            System.out.println("Popup is open!");
            //loginPopup.show(searchBtn, JFXPopup.PopupVPosition.BOTTOM, JFXPopup.PopupHPosition.LEFT);
            loginPopup.show(searchBtn);
        }
    }

【问题讨论】:

    标签: java javafx jfoenix


    【解决方案1】:

    调用show时使用场景的根窗格,计算中心位置;

    popupRoot.setPrefWidth(200);
    popupRoot.setPrefHeight(300);
    button.setOnAction(event -> {
        JFXPopup loginPopup = new JFXPopup(popupRoot);
        Bounds rootBounds = scene.getRoot().getLayoutBounds();
        loginPopup.show(scene.getRoot(), JFXPopup.PopupVPosition.TOP, JFXPopup.PopupHPosition.LEFT,
                (rootBounds.getWidth() - popupRoot.getPrefWidth()) / 2,
                (rootBounds.getHeight() - popupRoot.getPrefHeight()) / 2);
    });
    

    请参阅here 以从您的控制器访问场景。

    【讨论】:

      猜你喜欢
      • 2015-05-04
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2013-03-14
      • 2011-04-27
      • 1970-01-01
      相关资源
      最近更新 更多