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

JavaFXطريقة وضع أي شيء كمحتوى في الـTitledPane

المثال التالي يعلمك طريقة وضع أي شيء تريده كمحتوى في الـ TitledPane.

ملاحظة: عليك إنشاء مجلد إسمه images لتضع الصورة بداخله كما في الصورة التالية.

⇓ تحميل مجلد الصور


مثال

Main.java
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.control.TitledPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;

public class Main extends Application {

    @Override
    public void start(Stage stage) {
        
        // في النافذة Root Node و الذي ننوي جعله الـ FlowPane هنا قمنا بإنشاء كائن من الكلاس
        FlowPane root = new FlowPane();
        
        // يظهر في الأعلى و في الوسط root هنا جعلنا أي شيء نضيفه في الكائن
        root.setAlignment(Pos.TOP_CENTER);
        
        // TitledPane يمثل الصورة التي سنقوم بوضعها بداخل أول ImageView هنا قمنا بإنشاء كائن من الكلاس
        ImageView imageView = new ImageView(new Image(getClass().getResourceAsStream("/images/godaddy-icon.png")));
        
        // مع وضع أربع أشياء بداخلها TitledPane يمثل الحاوية التي سنقوم بوضعها بداخل ثاني GridPane هنا قمنا بإنشاء كائن من الكلاس
        GridPane gridPane = new GridPane();
        gridPane.add(new Label("User"), 0, 0);
        gridPane.add(new TextField(), 1, 0);
        gridPane.add(new Label("Password"), 0, 1);
        gridPane.add(new PasswordField(), 1, 1);
        
        // و النافذة نفسها gridPane هنا قمنا بإضافة هامش بمقدار 5 بيكسل بين الكائن
        gridPane.setPadding(new Insets(5));
        
        // gridPane هنا قمنا بإضافة هامش بمقدار 10 بيكسل أفقياً بين كل شيئين يتم إضافتهما في الكائن
        gridPane.setHgap(5);
        
        // gridPane هنا قمنا بإضافة هامش بمقدار 10 بيكسل عامودياً بين كل شيئين يتم إضافتهما في الكائن
        gridPane.setVgap(5);
        
        // الذي يمثل الصورة كمحتوى imageView وضعنا له نص كعنوان و وضعنا فيه الكائن TitledPane هنا قمنا بإنشاء كائن من الكلاس
        TitledPane titledPane1 = new TitledPane("Image inside", imageView);

        // الذي يمثل الحاوية كمحتوى gridPane وضعنا له نص كعنوان و وضعنا فيه الكائن TitledPane هنا قمنا بإنشاء كائن من الكلاس
        TitledPane titledPane2 = new TitledPane("GridPane inside", gridPane);

        // titledPane2 و titledPane1 و وضعنا فيه الكائنين accordion هنا قمنا بإنشاء كائن من الكلاس
        Accordion accordion = new Accordion(titledPane1, titledPane2);
        
        // root في الكائن titledPane هن قمنا بإضافة الكائن
        root.getChildren().addAll(accordion);
        
        // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
        Scene scene = new Scene(root, 350, 250);

        // هنا وضعنا عنوان للنافذة
        stage.setTitle("JavaFX Accordion & TitledPane");

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

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

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

}

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

طريقة وضع أي شيء كمحتوى لل TitledPane في JavaFX