إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    Swing طريقة إستخدام أكثر من Layout Manager لترتيب محتوى الـ JFrame

    المثال التالي يعلمك طريقة ترتيب محتوى الـ Frame بإستخدام أكثر من Layout Manager.

    • الزر Next يعرض الـ Panel التالية في الـ Panel اليمنى.
    • الزر Previous يعرض الـ Panel السابقة في الـ Panel اليمنى.
    • الزر First يعرض أول Panel تم إضافتها في الـ Panel اليمنى.
    • الزر Last يعرض آخر Panel تم إضافتها في الـ Panel اليمنى.

    سنقوم بتقسيم الـ Frame كما في الصورة التالية.


    مثال

    Main.java
    import javax.swing.JFrame;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import java.awt.CardLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class Main {
     
        public static void main(String[] args) {
     
            JFrame frame = new JFrame("CardLayout demo");           // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
            frame.setSize(400, 200);                                // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 200
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
            frame.setLayout(new GridBagLayout());                   // لترتيب الأشياء التي نضيفها بداخلها GridBagLayout هنا جعلنا النافذة تستخدم الـ
     
            // اليمنى Panel اليسرى و الـ Panel هنا قمنا بتعريف الـ
            JPanel panel_L = new JPanel();
            JPanel panel_R = new JPanel();
     
            // في النافذة panel_R و الـ panel_L لتحديد مكان و حجم الـ GridBagConstraints هنا قمنا بتعريف كائن من الكلاس
            GridBagConstraints gbc = new GridBagConstraints();
     
            // يتأثر بكامل المساحة المتوفرة من النافذة بالإتجاهين الأفقي و العامودي gbc هنا جعلنا الـ
            gbc.fill = GridBagConstraints.BOTH;
     
            // هنا جعلنا نسبة الجذب الأفقية و العامودية متساوي حتى يكون المحتوى دائماً مطابق لحجم الشاشة
            gbc.weightx = 1;
            gbc.weighty = 1;
     
            // في يسار النافذة panel_L هنا أضفنا الـ
            frame.add(panel_L, gbc);
     
            // في يمين النافذة مع إعطائها حجم جذب أكبر بعشر مرات panel_R هنا أضفنا الـ
            gbc.weightx = 10;
            frame.add(panel_R, gbc);
     
            // إلى 4 أقسام بالطول panel_L هنا قمنا بتقسيم الـ
            panel_L.setLayout(new GridLayout(4, 1));
     
            // هنا قمنا بتعريف 4 أزرار
            JButton next = new JButton("Next");
            JButton previous = new JButton("Previous");
            JButton first = new JButton("First");
            JButton last = new JButton("Last");
     
            // panel_L هنا قمنا بإضافة الأزرار في الـ
            panel_L.add(next);
            panel_L.add(previous);
            panel_L.add(first);
            panel_L.add(last);
     
            // // لترتيب الأشياء التي نضيفها بداخلها فوق بعضها البعض CardLayout تستخدم الـ panel_R هنا جعلنا الـ
            CardLayout card = new CardLayout();
            Container container = panel_R;
            container.setLayout(card);
     
            // Panels هنا قمنا بتعريف 4
            JPanel p1 = new JPanel();
            JPanel p2 = new JPanel();
            JPanel p3 = new JPanel();
            JPanel p4 = new JPanel();
     
            // منهم Panel هنا قمنا بإعطاء لون خلفية مختلف لكل
            p1.setBackground(Color.white);
            p2.setBackground(Color.yellow);
            p3.setBackground(Color.cyan);
            p4.setBackground(Color.green);
     
            // منهم Panel هنا قمنا بإضافة عنوان في كل
            p1.add(new JLabel("Panel 1"));
            p2.add(new JLabel("Panel 2"));
            p3.add(new JLabel("Panel 3"));
            p4.add(new JLabel("Panel 4"));
     
            // panel_R الأربعة في الـ Panels هنا قمنا بإضافة الـ
            panel_R.add(p1);
            panel_R.add(p2);
            panel_R.add(p3);
            panel_R.add(p4);
     
            // التالية Panel سيتم عرض الـ next هنا قلنا أنه عند النقر على الزر
            next.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    card.next(container);
                }
            });
     
            // السابقة Panel سيتم عرض الـ previous هنا قلنا أنه عند النقر على الزر
            previous.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    card.previous(container);
                }
            });
     
            // panel_R قمنا بإضافتها في الـ Panel سيتم عرض أول first هنا قلنا أنه عند النقر على الزر
            first.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    card.first(container);
                }
            });
     
            // panel_R قمنا بإضافتها في الـ Panel سيتم عرض آخر last هنا قلنا أنه عند النقر على الزر
            last.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    card.last(container);
                }
            });
     
            // هنا جعلنا النافذة مرئية
            frame.setVisible(true);
     
        }
     
    }
    		

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

    كل زر تقوم بالنقر عليه, سيعرض Panel أخرى في الـ Panel اليمنى.

    طريقة ترتيب محتوى ال JFrame بإستخدام أكثر من Layout Manager في جافا
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

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