التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree)
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1 • شاطر
التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree)
بسم الله الرحمن الرحيم
أولا : مقدمة
أهلا بكم درس اليوم عن العنصر الرسومى JTree هو أحد العناصر الرسومية المدمج فى الحزمة الرسومية Swing حيث يمكننا هذا العنصر من عرض البيانات و المعلومات في تصنيف شجري أو هرمى سهل نراه في معظم البرامج كما فى الشكل التالى :
![التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20with%20Custom%20Image%20Icon](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20with%20Custom%20Image%20Icon.png)
وهذا العنصر الرسومى JTree لدية ما يسمى "node" أي عقدة أو تفريعة وقد تكون هذه التفريعة إما " root node 'عقدة الجذر " و هى الأصل الاعلى لمعظم العقد الاخرى في الشجرة. أو تكون children nodes أى عقدة أو تفريعة يمكن أن يكون لها العديد من العقد الأطفال و تفريعات داخلية.تلك العقد ايضا يمكن أن يكون لها مزيد من الأطفال العقد.
ثانيا : إنشاء عقدة الجزر
حتى نتمكن من إنشاء العنصر الرسومى JTree يجب فى البداية إنشاء عقدة الجزر أو التفريعة الرئسية التى سينبق منها كافة التفريعات الاخرى و يتم ذلك من خلال إنشاء مثيل جديد من الفئة DefaultMutableTreeNode على النحو التالى :
بعد ذلك يمكننا إنشاء child nodes عقدة أطفال على النحو التالى :
الان يمكنك إستخدام الاسلوب add لاضافة عقدة الاطفال الى عقدة الجزر التى تم إنشائها أعلاه وذلك على النحو التالى :
_ بعد ذلك نقوم بانشاء العنصر الرسومى JTree وإضافة عقدة الحزر الى العنصر على النحو التالى :
_ و اخيرا إضافة العنصر الرسومى JTree الى النافذة
و الكود النهائى على النحو التالى :
و النتيجة النهائية على النحو التالى :
![التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20Output%20with%202%20children](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20Output%20with%202%20children.png)
ثالثا : إضافة المزيد من التفريعات أو العقدة الداخلية
دعونا الان نقوم بإضافة تفريعات الى الى كل من التفريعة vegetableNode و التفريعة fruitNode والامر بسيط للغاية و ذلك على النحو التالى :
و النتيجة على النحو التالى :
![التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20Collapsed%20Parent%20Nodes](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20Collapsed%20Parent%20Nodes.png)
أولا : مقدمة
أهلا بكم درس اليوم عن العنصر الرسومى JTree هو أحد العناصر الرسومية المدمج فى الحزمة الرسومية Swing حيث يمكننا هذا العنصر من عرض البيانات و المعلومات في تصنيف شجري أو هرمى سهل نراه في معظم البرامج كما فى الشكل التالى :
![التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20with%20Custom%20Image%20Icon](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20with%20Custom%20Image%20Icon.png)
وهذا العنصر الرسومى 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](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20Output%20with%202%20children.png)
ثالثا : إضافة المزيد من التفريعات أو العقدة الداخلية
دعونا الان نقوم بإضافة تفريعات الى الى كل من التفريعة 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](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20Collapsed%20Parent%20Nodes.png)
يمكننا أن نرى أن الرمز أو الايقونة المعروض للعقدة قد تغيرت من رمز ورقة إلى رمز المجلد و هذا يشير إلى أن هذه العقد تحتوى على تفريعات داخلية أو عقد أطفال. أيضا، لاحظ الايقونة أو الرمز الذى يشبه المفتاح بجانب هذه العقد والذى يشير أيضا أن هذه العقدة يمكن توسيعها من خلال النقر عليها
دعونا الآن تشغيل البرنامج مرة أخرى وانقر على حد سواء هذه المقابض لتوسيعها. نحصل على الإخراج التالي:
![التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20Expanded%20Parent%20Nodes](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20Expanded%20Parent%20Nodes.png)
دعونا الآن تشغيل البرنامج مرة أخرى وانقر على حد سواء هذه المقابض لتوسيعها. نحصل على الإخراج التالي:
![التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree) JTree%20Expanded%20Parent%20Nodes](https://2img.net/h/www.codejava.net/images/articles/javase/swing/jtree/JTree%20Expanded%20Parent%20Nodes.png)
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
مدونة وليدوف التطويرية- ...
- تاريخ التسجيل : 22/11/2011
المساهمات : 32
النقاط : 48
التقيم : 4
الدولة :
الجنس :
رد: التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTree)
برافوا @زهراء
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» تصميم تطبيق جوال لمغسلة ملابس
» تصميم تطبيق جوال لشركة عقارات
» شركة مكافحة النمل الابيض بالرياض
» تصميم تطبيق جوال لنقل الاثاث
» هناجر
» تصميم تطبيق جوال لمتجر ورد
» تصميم تطبيق جوال لسلسلة مطاعم
» تصميم تطبيق جوال لتوصيل الطلبات
» مظلات سيارات متحركة