BorderPane
には、ScrollPane
を中心要素として使用しています。それは画面を満たすために自動的にサイズを変更します。 ScrollPane
の中には内容がなく、ドラッグアンドドロップ対象のHBox
です。したがって、私はそれが親のScrollPane
を埋めることを望みます。現在のサイズに合わせてJavaFX ScrollPaneコンテンツのサイズを変更する方法
これを行うにはどのような方法が良いですか?
HBox
のサイズを変更するには、ScrollPane.resize(...)
メソッドをオーバーライドしていますが、それはやや複雑で非標準的です。
編集:これは私が問題を回避することができる方法で、これまでいくつかの便利なコードを追加するには、私はこれを行うためにいくつかのより良い方法がなければならないと考えている。一部はここから取ら
@Override
public void resize(double width, double height) {
super.resize(width, height);
double scrollBarHeight = 2;
double scrollBarWidth = 2;
for (final Node node : lookupAll(".scroll-bar")) {
if (node instanceof ScrollBar) {
ScrollBar sb = (ScrollBar) node;
if (sb.getOrientation() == Orientation.HORIZONTAL) {
System.out.println("horizontal scrollbar visible = " + sb.isVisible());
System.out.println("width = " + sb.getWidth());
System.out.println("height = " + sb.getHeight());
if(sb.isVisible()){
scrollBarHeight = sb.getHeight();
}
}
if (sb.getOrientation() == Orientation.VERTICAL) {
System.out.println("vertical scrollbar visible = " + sb.isVisible());
System.out.println("width = " + sb.getWidth());
System.out.println("height = " + sb.getHeight());
if(sb.isVisible()){
scrollBarWidth = sb.getWidth();
}
}
}
}
hBox.setPrefSize(width-scrollBarWidth, height-scrollBarHeight);
}
コード: How to access the Scrollbars of a ScrollPane
、私は時々hgrowとvgrowにを入れて今働いている – user7867610