JavaFX 2-Ensemble学習(2)-BorderPaneに上下左右以外のコントロールとレイアウトテクニックを追加
904 ワード
この効果は、パネル全体のレイアウトに影響を与えることなく、主にコーナーエフェクトを追加するために使用されます.
実装の原理はlayoutChildren()メソッドを書き換え、指定したコントロールを絶対レイアウトしてchildrenリストにコンポーネントを追加することです(上下左右に設定する必要はありません).ただし、setManaged(false)が正しいBorderPaneのデフォルトlayoutでは、そのコントロールのサイズや位置などは計算されません.次のコードを参照してください.
もちろん、同様の効果はStackPaneに透明パネルを重ねて実現することもできます.
実装の原理は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に透明パネルを重ねて実現することもできます.