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

Swingطريقة ترتيب محتوى الـ JFrame بشكل متوازي أفقياً و عامودياً بواسطة الكلاس GroupLayout

المثال التالي يعلمك طريقة ترتيب محتوى الـ Frame بشكل متوازي أفقياً و عامودياً بواسطة الكلاس GroupLayout.


مثال

Main.java
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.GroupLayout;
import java.awt.Container;
 
public class Main {
 
    public static void main(String[] args) {
 
        // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
        JFrame frame = new JFrame("GroupLayout demo");
 
        // لترتيب الأشياء التي نضيفها بداخلها GroupLayout هنا جعلنا النافذة تستخدم الـ
        Container container = frame.getContentPane();
        GroupLayout groupLayout = new GroupLayout(container);
        container.setLayout(groupLayout);
 
        // هنا قمنا بإضافة هوامش بين النافذة و المجموعات و بين جميع الأشياء التي سنضيفها في المجموعات
        groupLayout.setAutoCreateGaps(true);
        groupLayout.setAutoCreateContainerGaps(true);
        groupLayout.preferredLayoutSize(container);
 
        // هنا قمنا بتعريف 4 أزرار
        JButton btn1 = new JButton("Button 1");
        JButton btn2 = new JButton("Button 2");
        JButton btn3 = new JButton("Button 3");
        JButton btn4 = new JButton("Button 4");
 
        // وراء بعضهم أفقياً btn2 ثم الـ btn1 هنا قمنا بإضافة الـ
        // btn4 و الـ btn3 ثم أضفنا مجموعة جديدة متوازية و أضفنا فيها الـ
        groupLayout.setHorizontalGroup(
            groupLayout.createSequentialGroup()
                .addComponent(btn1)
                .addComponent(btn2)
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(btn3)
                    .addComponent(btn4)
                )
        );
 
        // وراء بعضهم ضمن مجموعة متوازية عامودياً. أي على نفس السطر btn3 ثم الـ btn2 ثم الـ btn1 هنا قمنا بإضافة الـ
        // لأنه موجود معه في نفس المجموعة btn3 لوحده و بالتالي سيظهر تحت الـ btn4 ثم أضفنا الـ
        groupLayout.setVerticalGroup(
            groupLayout.createSequentialGroup()
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(btn1)
                    .addComponent(btn2)
                    .addComponent(btn3)
                )
                .addComponent(btn4)
        );
 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.pack();                                           // هنا جعلنا حجم النافذة يناسب حجم المحتوى
        frame.setVisible(true);                                 // هنا جعلنا النافذة مرئية
 
    }
 
}

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

طريقة ترتيب محتوى ال JFrame بشكل متوازي أفقياً و عامودياً بواسطة الكلاس GroupLayout في جافا