[resize] वर्तमान आकार फिट करने के लिए JavaFX स्क्रॉलपेन सामग्री का आकार कैसे बदलें


Answers

XML या CSS माध्यम से fitToHeight या fitToWidth विशेषता सेट करना:

FXML:

<ScrollPane fx:id="myScrollPane" fitToHeight="true" fitToWidth="true" />

सीएसएस:

.my-scroll-pane {
    -fx-fit-to-height: true;
    -fx-fit-to-width: true;
}
Question

मेरे पास एक BorderPane साथ केंद्र तत्व के रूप में एक BorderPane है। यह स्क्रीन भरने के लिए स्वचालित रूप से आकार बदलता है। ScrollPane अंदर एक HBox है जिसमें कोई सामग्री नहीं है लेकिन ड्रैग-एंड-ड्रॉप लक्ष्य है। इसलिए मैं इसे अपने माता-पिता ScrollPane को भरना चाहता हूं।

ऐसा करने का पसंदीदा तरीका क्या है?

मैंने अभी तक जो कोशिश की है वह HBox का आकार बदलने के लिए HBox ScrollPane.resize(...) विधि को HBox लेकिन यह जटिल और अपरंपरागत लगता है।

संपादित करें: इसमें कुछ उपयोगी कोड जोड़ने के लिए, इस तरह मैं समस्या को हल कर सकता हूं, लेकिन मेरा मानना ​​है कि ऐसा करने के लिए कुछ बेहतर तरीका होना चाहिए:

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

कोड आंशिक रूप से यहां से लिया गया: स्क्रोलपैन के स्क्रॉलबार तक कैसे पहुंचे




Links