Swingطريقة ترتيب محتوى الـ JFrame
بشكل متوازي أفقياً و عامودياً بواسطة الكلاس GroupLayout
المثال التالي يعلمك طريقة ترتيب محتوى الـ Frame بشكل متوازي أفقياً و عامودياً بواسطة الكلاس GroupLayout
.
مثال
import javax.swing.JFrame; 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("GroupLayout demo"); // لترتيب الأشياء التي نضيفها بداخلها GroupLayout هنا جعلنا النافذة تستخدم الـ Container container = frame.getContentPane(); GroupLayout groupLayout = new GroupLayout(container); container.setLayout(groupLayout); // هنا قمنا بإضافة هوامش بين النافذة و المجموعات و بين جميع الأشياء التي سنضيفها في المجموعات groupLayout.setAutoCreateGaps(true); groupLayout.setAutoCreateContainerGaps(true); groupLayout.preferredLayoutSize(container); // هنا قمنا بتعريف 4 أزرار JButton btn1 = new JButton("Button 1"); JButton btn2 = new JButton("Button 2"); JButton btn3 = new JButton("Button 3"); JButton btn4 = new JButton("Button 4"); // وراء بعضهم أفقياً btn2 ثم الـ btn1 هنا قمنا بإضافة الـ // btn4 و الـ btn3 ثم أضفنا مجموعة جديدة متوازية و أضفنا فيها الـ groupLayout.setHorizontalGroup( groupLayout.createSequentialGroup() .addComponent(btn1) .addComponent(btn2) .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(btn3) .addComponent(btn4) ) ); // وراء بعضهم ضمن مجموعة متوازية عامودياً. أي على نفس السطر btn3 ثم الـ btn2 ثم الـ btn1 هنا قمنا بإضافة الـ // لأنه موجود معه في نفس المجموعة btn3 لوحده و بالتالي سيظهر تحت الـ btn4 ثم أضفنا الـ groupLayout.setVerticalGroup( groupLayout.createSequentialGroup() .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(btn1) .addComponent(btn2) .addComponent(btn3) ) .addComponent(btn4) ); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.pack(); // هنا جعلنا حجم النافذة يناسب حجم المحتوى frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
ستظهر لك النافذة التالية عند التشغيل.