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

Swingطريقة إنشاء واجهة تسجيل دخول بواسطة الكلاس GroupLayout

المثال التالي يعلمك طريقة إنشاء واجهة تسجيل دخول بواسطة الكلاس 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 هنا أنشأنا كائن من الكلاس
        JFrame frame = new JFrame("Login");
 
        // لترتيب الأشياء التي نضيفها بداخلها GroupLayout هنا جعلنا النافذة تستخدم الـ
        Container container = frame.getContentPane();
        GroupLayout groupLayout = new GroupLayout(container);
        container.setLayout(groupLayout);
 
        // هنا قمنا بإضافة هوامش بين النافذة و المجموعات و بين جميع الأشياء التي سنضيفها في المجموعات
        groupLayout.setAutoCreateGaps(true);
        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()
                // في مجموعة متوازية أفقياً label_2 و الـ label_1 هنا وضعنا الـ
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(label_1)
                    .addComponent(label_2)
                )
                // في مجموعة متوازية أفقياً textField_2 و الـ textField_1 هنا وضعنا الـ
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(textField_1)
                    .addComponent(textField_2)
 
                    // في مجموعة متتالية و وضعناها مع المجموعة الثانية button_2 و الـ button_1 هنا وضعنا الـ
                    .addGroup(groupLayout.createSequentialGroup()
                        .addComponent(button_1)
                        .addComponent(button_2)
                    )
                )
        );
 
        // هنا قمنا بتعريف ثلاث مجموعات عامودية, لوضع المحتوى على ثلاث أسطر
        groupLayout.setVerticalGroup(
            groupLayout.createSequentialGroup()
                // في مجموعة متوازية عامودياً و بالتالي سيظهروا في السطر الأول textField_1 و الـ label_1 هنا وضعنا الـ
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(label_1)
                    .addComponent(textField_1)
                )
                // في مجموعة متوازية عامودياً و بالتالي سيظهروا في السطر الثاني textField_2 و الـ label_2 هنا وضعنا الـ
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(label_2)
                    .addComponent(textField_2)
                )
                // في مجموعة متوازية عامودياً و بالتالي سيظهروا في السطر الثالث button_2 و الـ button_1 هنا وضعنا الـ
                .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(button_1)
                    .addComponent(button_2)
                )
        );
 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.pack();                                           // هنا جعلنا حجم النافذة يناسب حجم المحتوى
        frame.setVisible(true);                                 // هنا جعلنا النافذة مرئية
 
    }
 
}

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

طريقة إنشاء واجهة تسجيل دخول بواسطة الكلاس GroupLayout في جافا