التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree)

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree)

مُساهمة من طرف زهراء في السبت يونيو 14, 2014 1:54 pm

بسم الله الرحمن الرحيم


أولا : مقدمة

أهلا بكم درس اليوم عن العنصر الرسومى JTree  هو أحد العناصر الرسومية المدمج فى الحزمة الرسومية  Swing حيث يمكننا هذا العنصر من عرض البيانات و المعلومات في تصنيف شجري أو هرمى سهل نراه في معظم البرامج كما فى الشكل التالى :



وهذا العنصر الرسومى JTree لدية ما يسمى "node" أي عقدة أو تفريعة وقد تكون هذه التفريعة إما " root node  'عقدة الجذر " و هى الأصل الاعلى لمعظم العقد الاخرى في الشجرة. أو تكون children nodes أى عقدة أو تفريعة يمكن أن يكون لها العديد من العقد الأطفال و تفريعات داخلية.تلك العقد ايضا يمكن أن يكون لها مزيد من الأطفال العقد.


ثانيا : إنشاء عقدة الجزر

حتى نتمكن من إنشاء العنصر الرسومى JTree يجب فى البداية إنشاء عقدة الجزر أو التفريعة الرئسية التى سينبق منها كافة التفريعات الاخرى و يتم ذلك من خلال إنشاء مثيل جديد من الفئة DefaultMutableTreeNode على النحو التالى :

الرمز:
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");

بعد ذلك يمكننا إنشاء child nodes عقدة أطفال على النحو التالى :

الرمز:
DefaultMutableTreeNode vegetableNode = new DefaultMutableTreeNode("Vegetables");
        DefaultMutableTreeNode fruitNode = new DefaultMutableTreeNode("Fruits");

الان يمكنك إستخدام الاسلوب add لاضافة عقدة الاطفال الى عقدة الجزر التى تم إنشائها أعلاه وذلك على النحو التالى :

الرمز:
root.add(vegetableNode);
        root.add(fruitNode);

_ بعد ذلك نقوم بانشاء العنصر الرسومى JTree وإضافة عقدة الحزر الى العنصر على النحو التالى :

الرمز:
tree = new JTree(root);

_ و اخيرا إضافة العنصر الرسومى  JTree الى النافذة

الرمز:
add(tree);

و الكود النهائى على النحو التالى :
الرمز:

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.tree.DefaultMutableTreeNode;
 
public class TreeExample extends JFrame
{
    private JTree tree;
    public TreeExample()
    {
      
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
      
        DefaultMutableTreeNode vegetableNode = new DefaultMutableTreeNode("Vegetables");
        DefaultMutableTreeNode fruitNode = new DefaultMutableTreeNode("Fruits");
 

        root.add(vegetableNode);
        root.add(fruitNode);
                
        tree = new JTree(root);
        add(tree);
        
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("JTree Example");      
        this.pack();
        this.setVisible(true);
    }
    
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new TreeExample();
            }
        });
    }      
}

و النتيجة النهائية على النحو التالى :



ثالثا : إضافة المزيد من التفريعات أو العقدة الداخلية

دعونا الان نقوم بإضافة تفريعات الى الى كل من التفريعة vegetableNode و التفريعة fruitNode والامر بسيط للغاية و ذلك على النحو التالى :
الرمز:

DefaultMutableTreeNode vegetableNode = new DefaultMutableTreeNode("Vegetables");
vegetableNode.add(new DefaultMutableTreeNode("Capsicum"));
vegetableNode.add(new DefaultMutableTreeNode("Carrot"));
vegetableNode.add(new DefaultMutableTreeNode("Tomato"));
vegetableNode.add(new DefaultMutableTreeNode("Potato"));
 
DefaultMutableTreeNode fruitNode = new DefaultMutableTreeNode("Fruits");
fruitNode.add(new DefaultMutableTreeNode("Banana"));
fruitNode.add(new DefaultMutableTreeNode("Mango"));
fruitNode.add(new DefaultMutableTreeNode("Apple"));
fruitNode.add(new DefaultMutableTreeNode("Grapes"));
fruitNode.add(new DefaultMutableTreeNode("Orange"));

و النتيجة على النحو التالى :



يمكننا أن نرى أن الرمز أو الايقونة المعروض للعقدة قد تغيرت من رمز ورقة إلى رمز المجلد و هذا يشير إلى أن هذه العقد تحتوى على تفريعات داخلية أو عقد أطفال. أيضا، لاحظ الايقونة أو الرمز الذى يشبه المفتاح بجانب هذه العقد والذى يشير أيضا أن هذه العقدة يمكن توسيعها من خلال النقر عليها

دعونا الآن تشغيل البرنامج مرة أخرى وانقر على حد سواء هذه المقابض لتوسيعها. نحصل على الإخراج التالي:






زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree)

مُساهمة من طرف مدونة وليدوف التطويرية في الأحد يونيو 29, 2014 10:38 am


جزاكم الله خير

مدونة وليدوف التطويرية
...
...

تاريخ التسجيل : 22/11/2011
المساهمات : 32
النقاط : 47
التقيم : 3
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى