در این آموزش تیم کدگیت را با آموزش JTree در جاوا همراهی کنید. در ابتدای این جلسه JTree را توضیح و سپس متدهای آن را معرفی میکنیم. در ادامه آموزش، یک مثال واقعی از JTree بر روی JFrame پیاده سازی میکنیم. همچنین پیشنهاد میشود قبل از مطالعه این جلسه، آموزشهای گذشته گرافیک در جاوا را مطالعه کنید.
کتابخانه JTree
JTree یکی از کمپوننتهای Swing بوده و برای نمایش اطلاعات سلسه مراتبی استفاده میشود. JTree یکی از کمپوننتهای پیچیده میباشد. در این کمپوننت یک نود (Node) ریشه وجود دارد و تمامی نودهای دیگر زیرشاخه این نود میباشند. تعریفی دیگر از نود (Node)، یک نود همان آیتمی است که در درخت قرار میگیرد. هر نود میتواند خود دارای چندین زیر شاخه (فرزند) باشد. در تصویر زیر یک مثال از JTree آورده شده است. در این مثال، نود ریشه Style است و زیر شاخههای آن Color و Font میباشند. نود Color خود نیز دارای 4 فرزند میباشد.
برخی از متدهای کلاس JTree به صورت زیر میباشد:
- ()JTree : متد Constructor است و یک JTree ساده میسازد.
- (JTree(Object[] value : متد Constructor است و بر اساس آرایه ورودی زیرشاخههای(نود) ریشه را تنظیم میکند.
- (JTree(TreeNode root : متد Constructor است و یک JTree با یک ریشه دلخواه (ورودی تابع) میسازد.
مثال JTree در جاوا
در این قسمت یک مثال ساده از JTree خواهیم زد. فرض کنید میخواهیم بخشهای مختلف سایت کدگیت را درون یک JTree نمایش دهیم. نود ریشه یا همان Root Node را کدگیت قرار میدهیم. کدگیت آموزش چندین زبان برنامهنویسی است ما زبانهای جاوا و سی شارپ و سی پلاس پلاس را به عنوان زیر شاخه های نود ریشه قرار میدهیم. در نود جاوا، دو زیر قسمت به نام دیزاین پترن و شیگرایی را اضافه میکنیم. در تصویر زیر این بخش بندی را مشاهده میکنید:
کد مثال JTree در جاوا به صورت زیر است:
public class TreeExample {
JFrame f;
TreeExample() {
f = new JFrame();
DefaultMutableTreeNode style = new DefaultMutableTreeNode("CodeGate");
DefaultMutableTreeNode java = new DefaultMutableTreeNode("Java");
DefaultMutableTreeNode cpp = new DefaultMutableTreeNode("C++");
DefaultMutableTreeNode csharp = new DefaultMutableTreeNode("C#");
style.add(java);
style.add(cpp);
style.add(csharp);
DefaultMutableTreeNode OOP = new DefaultMutableTreeNode("Object Oriented");
DefaultMutableTreeNode DesP = new DefaultMutableTreeNode("Design Pattern");
java.add(OOP);
java.add(DesP);
JTree jt = new JTree(style);
f.add(jt);
f.setSize(200, 200);
f.setVisible(true);
}
public static void main(String[] args) {
new TreeExample();
}
}
خروجی کدهای بالا به صورت زیر میباشد: