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

Swingطريقة ترتيب محتوى الـ JFrame بواسطة الكلاس GridBagLayout

المثال التالي يعلمك طريقة ترتيب محتوى الـ Frame بواسطة الكلاس GridBagLayout و الكلاس GridBagConstraints.


مثال

Main.java
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
 
public class Main {
 
    public static void main(String[] args) {
 
        JFrame frame = new JFrame("GridBagLayout demo");        // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
        frame.setSize(300, 300);                                // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 300
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.setLayout(new GridBagLayout());                   // لترتيب الأشياء التي نضيفها بداخلها GridBagLayout هنا جعلنا النافذة تستخدم الـ
 
        // هنا قمنا بتعريف 10 أزرار
        JButton b1 = new JButton("1");
        JButton b2 = new JButton("2");
        JButton b3 = new JButton("3");
        JButton b4 = new JButton("4");
        JButton b5 = new JButton("5");
        JButton b6 = new JButton("6");
        JButton b7 = new JButton("7");
        JButton b8 = new JButton("8");
        JButton b9 = new JButton("9");
        JButton b10 = new JButton("10");
 
        // لتحديد مكان كل شيء بداخل النافذة GridBagConstraints هنا قمنا بتعريف كائن من الكلاس
        GridBagConstraints gbc = new GridBagConstraints();
 
        // يتأثر بكامل المساحة المتوفرة من النافذة بالإتجاهين الأفقي و العامودي gbc هنا جعلنا الـ
        gbc.fill = GridBagConstraints.BOTH;
 
        // هنا جعلنا نسبة الجذب الأفقية و العامودية متساوي حتى يكون المحتوى دائماً مطابق لحجم الشاشة
        gbc.weightx = 1;
        gbc.weighty = 1;
 
        // هنا أضفنا أول ثلاث أزرار في أول سطر
        frame.add(b1, gbc);
        frame.add(b2, gbc);
        frame.add(b3, gbc);
 
        // هنا أضفنا الزر الرابع كآخر زر في السطر الأول
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        frame.add(b4, gbc);
 
        // هنا أضفنا الزر الخامس لوحده و الذي بدوره سيظهر على سطر جديد و الذي سيكون السطر الثاني هنا
        frame.add(b5, gbc);
 
        // هنا أضفنا الزر السادس نسبة للزر الخامس, أي سيوضع بعد الزر الخامس و على سطر جديد و الذي سيكون السطر الثالث هنا
        gbc.gridwidth = GridBagConstraints.RELATIVE;
        frame.add(b6, gbc);
 
        // هنا أضفنا الزر السابع كآخر زر في نفس السطر الموجود فيه الزر السادس
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        frame.add(b7, gbc);
 
        // هنا أضفنا الزر الثامن و الذي بدوره سيظهر على سطر جديد و الذي سيكون السطر الرابع هنا
        gbc.gridwidth = 1;
        gbc.gridheight = 2;     // هنا جعلناه طوله مضاعف, أي سيظهر أيضاً على السطر الخامس
        frame.add(b8, gbc);
 
        // هنا أضفنا الزر التاسع كآخر زر في نفس السطر الموجود فيه الزر الثامن
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        gbc.gridheight = 1;
        frame.add(b9, gbc);
 
        // هنا أضفنا الزر العاشر كآخر زر في نفس السطر الموجود فيه الزر التاسع
        frame.add(b10, gbc);
 
        // هنا جعلنا النافذة مرئية
        frame.setVisible(true);
 
    }
 
}

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

طريقة ترتيب محتوى ال JFrame بواسطة الكلاس GridBagLayout في جافا