Swingطريقة ترتيب محتوى الـ JFrame
بواسطة الكلاس GridBagLayout
المثال التالي يعلمك طريقة ترتيب محتوى الـ Frame بواسطة الكلاس GridBagLayout
و الكلاس GridBagConstraints
.
مثال
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); } }
ستظهر لك النافذة التالية عند التشغيل.