الوظيفة: إنشاء قائمة شجرة الوصف: إنشاء بنية قائمة شجرة يشبه إنشاء شريط القائمة، ويتم إنشاؤه بناءً على المستويات والنماذج.
قم بإنشاء كائنات العقدة الجذرية والعقدة التابعة والعقدة التابعة من خلال فئة DefaultMutableTreeNode، ثم استخدم DefaultTreeModel
تستخدم الفئة العقدة الجذرية لإنشاء كائن نموذج شجرة، ثم تقوم بإدراج كائن العقدة في نموذج الشجرة من خلال طريقة TreeModel.insertNodeInto.
تقديم:
شفرة:
import java.awt.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; ("قائمة الشجرة")؛ setSize(400,400); حاوية الحاوية = getContentPane(); // إنشاء العقدة الجذرية والعقدة الفرعية DefaultMutableTreeNode root = new DefaultMutableTreeNode("Text Editor"); DefaultMutableTreeNodeNode1 = new DefaultMutableTreeNode("File"); DefaultMutableTreeNodeNode2 = new DefaultMutableTreeModel("Edit"); ); // أدخل العقد الفرعية العقدة 1, العقدة 2 TreeModel.insertNodeInto(node1,root,root.getChildCount()); TreeModel.insertNodeInto(node2,root,root.getChildCount()); // أنشئ عقدة فرعية للعقدة 1 وأدخل DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("Open" ) ; TreeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); leafnode = new DefaultMutableTreeNode("Save"); TreeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); ; TreeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); leafnode = new DefaultMutableTreeNode("Close"); TreeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); أدخله leafnode = new DefaultMutableTreeNode("cut"); TreeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); leafnode = new DefaultMutableTreeNode("copy"); TreeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); TreeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); // إنشاء كائن شجرة JTree Tree = new JTree(treeModel); // تعيين تحديد الشجرة لتحديد عقدة واحدة فقط في المرة الواحدة Tree.getSelectionModel() .setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION) // سجل المستمع Tree.addTreeSelectionListener(this); Tree.setRowHeight(20); // إنشاء كائن رسم العقدة DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); // تعيين الخط cellRenderer.setFont(new Font("Serif",Font.PLAIN,14)); .setBackgroundNonSelectionColor(Color.white); cellRenderer.setBackgroundSelectionColor(Color.yellow); cellRenderer.setBorderSelectionColor(Color.red); // تعيين اللون المتغير للنص عند تحديده أو عدم تحديده cellRenderer.setTextNonSelectionColor(Color.black); // أضف كائن الشجرة إلى لوحة المحتوى Container.add(new JScrollPane(tree)); // إنشاء تسمية label = new JLabel("العقدة التي تحددها حاليًا هي:"،JLabel.CENTER label.setFont(new Font("Serif",Font.PLAIN,14)); BorderLayout .SOUTH); setVisible(true); // تعيين setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // التعامل مع حدث TreeSelectionEvent public void valueChanged(TreeSelectionEvent events) { JTree Tree = (JTree)event.getSource(); toString (); label.setText("العقدة التي تحددها حاليًا هي: "+nodeName); } public static void main(String args[]) { Tree d = new Tree(); } }
تشبه القائمة الشجرة التي تم إنشاؤها في هذه المقالة وفقًا للمستويات والنماذج إنشاء شريط القوائم، وأتساءل عما إذا كان أصدقاؤك قد أتقنوها؟