JavaFX 2-Ensemble学習(2)-BorderPaneに上下左右以外のコントロールとレイアウトテクニックを追加


この効果は、パネル全体のレイアウトに影響を与えることなく、主にコーナーエフェクトを追加するために使用されます.
実装の原理はlayoutChildren()メソッドを書き換え、指定したコントロールを絶対レイアウトしてchildrenリストにコンポーネントを追加することです(上下左右に設定する必要はありません).ただし、setManaged(false)が正しいBorderPaneのデフォルトlayoutでは、そのコントロールのサイズや位置などは計算されません.次のコードを参照してください.
    Region windowResizeButton = new WindowResizeButton(stage, 1020,700);
    BorderPane root = new BorderPane() {
        @Override protected void layoutChildren() {
            super.layoutChildren();
            windowResizeButton.autosize();
            windowResizeButton.setLayoutX(getWidth() - windowResizeButton.getLayoutBounds().getWidth());
            windowResizeButton.setLayoutY(getHeight() - windowResizeButton.getLayoutBounds().getHeight());
        }
    };
    windowResizeButton.setManaged(false);
    this.root.getChildren().add(windowResizeButton);

もちろん、同様の効果はStackPaneに透明パネルを重ねて実現することもできます.