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 في جافا

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة