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

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

اذهب الى الأسفل

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

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

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


أولا : مقدمة

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


التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20with%20Custom%20Image%20Icon

وهذا العنصر الرسومى 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();
            }
        });
    }      
}

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

التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20Output%20with%202%20children


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

دعونا الان نقوم بإضافة تفريعات الى الى كل من التفريعة 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"));

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

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

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

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


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


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

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

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

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

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


جزاكم الله خير
مدونة وليدوف التطويرية
مدونة وليدوف التطويرية
...
...

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

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

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

مُساهمة من طرف أحمد مناع الجمعة مارس 20, 2020 7:16 am

برافوا @زهراء

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

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

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


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