Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

JavaFXطريقة تحديد حجم و مكان ظهور الأشياء التي نضيفها في ScrollPane

المثال التالي يعلمك طريقة تحديد حجم و مكان ظهور الأشياء التي نضيفها في ScrollPane.
لإظهار محتوى الـ ScrollPane في وسطه, سنضع فيه StackPane, و بداخله سنضيف الشيئ الذي نريد وضعه.


مثال

Main.java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.StackPane;
import javafx.beans.binding.Bindings;

public class Main extends Application {

    @Override
    public void start(Stage stage) {
        
        // في النافذة Root Node و الذي ننوي جعله الـ ScrollPane هنا قمنا بإنشاء كائن من الكلاس
        ScrollPane root = new ScrollPane();
        
        // root لأننا ننوي وضعه في الكائن StackPane هنا قمنا بإنشاء كائن من الكلاس
        StackPane stackPane = new StackPane();

        // root يمثل الزر الذي سنضعه بداخل الكائن Button هنا قمنا بإنشاء كائن من الكلاس
        Button button = new Button("Button");
        
        // button هنا قمنا بتحديد حجم الكائن
        button.setPrefSize(300, 200);
        
        // و بالتالي سيساوي عرض النافذة بحد ذاتها root يساوي عرض الكائن stackPane هنا جعلنا عرض الكائن
        stackPane.minWidthProperty().bind(Bindings.createDoubleBinding(() -> 
        root.getViewportBounds().getWidth(), root.viewportBoundsProperty()));
        
        // و بالتالي سيساوي طول النافذة بحد ذاتها root يساوي طول الكائن stackPane هنا جعلنا طول الكائن
        stackPane.minHeightProperty().bind(Bindings.createDoubleBinding(() -> 
        root.getViewportBounds().getHeight(), root.viewportBoundsProperty()));
        
        // stackPane في الكائن button هنا قمنا بإضافة الكائن
        stackPane.getChildren().add(button);
        
        // root في الكائن stackPane هنا قمنا بإضافة الكائن
        root.setContent(stackPane);
        
        // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
        Scene scene = new Scene(root, 350, 250);

        // هنا وضعنا عنوان للنافذة
        stage.setTitle("JavaFX ScrollPane");
        
        // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
        stage.setScene(scene);

        // هنا قمنا بإظهار النافذة
        stage.show();
        
    }

    // هنا قمنا بتشغيل التطبيق
    public static void main(String[] args) {
        launch(args);
    }

}

ستظهر لك النافذة التالية عند التشغيل.

طريقة تحديد حجم و مكان ظهور الأشياء التي نضيفها في ScrollPane في JavaFX

ببطئ قم بتصغير حجم النافذة بواسطة الفأرة لترى كيف سيتم إظهار شريط تمرير عند الحاجة ( ScrollBar ) حتى تظل قادراً على رؤية كل محتوى النافذة مهما كان حجمها.