Jak zmienić rozmiar zawartości JavaFX ScrollPane, aby dopasować ją do bieżącego rozmiaru

mamBorderPane zScrollPane jako element centralny. Zmienia rozmiar automatycznie, aby wypełnić ekran. W środkuScrollPane jestHBox który nie ma treści, ale jest celem „przeciągnij i upuść”. Dlatego chcę, aby zapełniło to jego rodzicaScrollPane.

Jaki jest preferowany sposób, aby to zrobić?

To, co dotychczas próbowałem, jest nadrzędne wobecScrollPane.resize(...) metoda zmiany rozmiaruHBox ale wydaje się to dość skomplikowane i niekonwencjonalne.

edytuj: Aby dodać do tego jakiś użyteczny kod, w ten sposób mogę rozwiązać problem, ale uważam, że musi być jakiś lepszy sposób, aby to zrobić:

@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);
}

Kod częściowo pobrany stąd:Jak uzyskać dostęp do pasków przewijania ScrollPane

questionAnswers(2)

yourAnswerToTheQuestion