2017-04-25 54 views
0

私はポップアップのために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); 
     } 
    } 

答えて

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を参照してください。

関連する問題