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.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.GroupLayout;
import java.awt.Container;
 
public class Main {
 
    public static void main(String[] args) {
 
        JFrame frame = new JFrame("Login");
 
        Container container = frame.getContentPane();
        GroupLayout groupLayout = new GroupLayout(container);
        container.setLayout(groupLayout);
 
        groupLayout.setAutoCreateContainerGaps(true);
        groupLayout.preferredLayoutSize(container);
 
        JLabel label_1 = new JLabel("User");
        JLabel label_2 = new JLabel("Password");
        JTextField textField_1 = new JTextField();
        JTextField textField_2 = new JTextField();
        JButton button_1 = new JButton("Register");
        JButton button_2 = new JButton("Login");
 
        groupLayout.setHorizontalGroup(
            groupLayout.createSequentialGroup()
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(label_1)
                    .addComponent(label_2)
                )
                // هنا قمنا بإضافة هامش بنسبة 20 بيكسل على يمين المجموعة الأولى أفقياً
                .addGap(20)
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
                    .addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
 
                    // هنا قمنا بجعل عرض الأزرار يساوي 90 بيكسل و وضعنا بينهما هامش بنسبة 20 بيكسل
                    .addGroup(groupLayout.createSequentialGroup()
                        .addComponent(button_1, GroupLayout.PREFERRED_SIZE, 90, GroupLayout.PREFERRED_SIZE)
                        .addGap(20)
                        .addComponent(button_2, GroupLayout.PREFERRED_SIZE, 90, GroupLayout.PREFERRED_SIZE)
                    )
                )
        );
 
        groupLayout.setVerticalGroup(
            groupLayout.createSequentialGroup()
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(label_1)
                    // هنا قمنا بجعل طول مربع النص الأول يساوي 25 بيكسل
                    .addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
                )
                // هنا قمنا بإضافة هامش بنسبة 12 بيكسل على أسفل المجموعة الأولى عامودياً أي تحت السطر الأول
                .addGap(12)
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(label_2)
                    // هنا قمنا بجعل طول مربع النص الثاني يساوي 25 بيكسل
                    .addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
                )
                // هنا قمنا بإضافة هامش بنسبة 12 بيكسل على أسفل المجموعة الثاني عامودياً أي تحت السطر الثاني
                .addGap(12)
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    // هنا قمنا بجعل طول الأزرار يساوي 30 بيكسل
                    .addComponent(button_1, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE)
                    .addComponent(button_2, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE)
                )
        );
 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
 
    }
 
}

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

طريقة تحديد حجم الأشياء التي تضيفها في ال JFrame و حجم الفراغات بينهم عند إستخدام الكلاس GroupLayout في جافا