ฟังก์ชัน: สร้างเมนูแบบต้นไม้ คำอธิบาย: การสร้างโครงสร้างเมนูแบบต้นไม้จะคล้ายกับการสร้างแถบเมนู และสร้างขึ้นตามระดับและแบบจำลอง
สร้างโหนดรูท โหนดลูก และวัตถุโหนดหลานผ่านคลาส DefaultMutableTreeNode จากนั้นใช้ DefaultTreeModel
คลาสใช้โหนดรูทเพื่อสร้างวัตถุโมเดลต้นไม้ จากนั้นแทรกวัตถุโหนดลงในโมเดลทรีผ่านเมธอด treeModel.insertNodeInto
การแสดงผล:
รหัส:
นำเข้า java.awt.*; นำเข้า javax.swing.tree.*; นำเข้า javax.swing.event.*; ("เมนูต้นไม้"); setSize(400,400); คอนเทนเนอร์คอนเทนเนอร์ = getContentPane(); //สร้างโหนดรูทและโหนดลูก DefaultMutableTreeNode root = ใหม่ DefaultMutableTreeNode ("แก้ไขข้อความ"); DefaultMutableTreeNode node1 = ใหม่ DefaultMutableTreeNode ("ไฟล์"); DefaultMutableTreeNode node2 = ใหม่ DefaultMutableTreeNode ("แก้ไข"); // ใช้โหนดรูทเพื่อสร้าง TreeModel DefaultTreeModel treeModel = new DefaultTreeModel(root ); // แทรกโหนดย่อย node1, node2 treeModel.insertNodeInto(node1,root,root.getChildCount()); treeModel.insertNodeInto(node2,root,root.getChildCount()); // สร้างโหนดย่อยของโหนด node1 และแทรก DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("Open" ) ; treeModel.insertNodeInto (leafnode, node1, node1.getChildCount ()); leafnode = ใหม่ DefaultMutableTreeNode ("บันทึกเป็น") ; treeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); //สร้างโหนดลูกของโหนด node2 และ ใส่มัน leafnode = new DefaultMutableTreeNode("cut"); treeModel.insertNodeInto (leafnode, node2, node2.getChildCount ()); leafnode = ใหม่ DefaultMutableTreeNode ("วาง"); treeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); //สร้างวัตถุต้นไม้ JTree tree = new JTree(treeModel); //ตั้งค่าการเลือก Tree เพื่อเลือกเพียงหนึ่งโหนดใน time tree.getSelectionModel() .setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); //ลงทะเบียน tree.addTreeSelectionListener(สิ่งนี้); tree.setRowHeight(20); //สร้างวัตถุการวาดโหนด DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); //ตั้งค่าแบบอักษร cellRenderer.setFont(แบบอักษรใหม่ ("Serif",Font.PLAIN,14)); . setBackgroundNonSelectionColor (สี. สีขาว); cellRenderer.setBackgroundSelectionColor(Color.yellow); cellRenderer.setBorderSelectionColor(Color.red); //ตั้งค่าสีของข้อความเมื่อเลือกหรือไม่ได้เลือก / /เพิ่มวัตถุต้นไม้ลงในแผงเนื้อหาcontainer.add(new JScrollPane(tree)); //สร้างป้ายกำกับ = new JLabel("โหนดที่คุณกำลังเลือกคือ:",JLabel.CENTER); label.setFont(แบบอักษรใหม่("Serif",Font.PLAIN,14)); BorderLayout .SOUTH); setVisible (จริง); // ตั้งค่า setDefaultCloseOperation ที่มองเห็นได้ (JFrame.EXIT_ON_CLOSE); // ตั้งค่าการดำเนินการปิดหน้าต่าง} // จัดการเหตุการณ์ TreeSelectionEvent ค่าโมฆะสาธารณะเปลี่ยน (เหตุการณ์ TreeSelectionEvent) { JTree tree = (JTree)event.getSource(); // รับโหนดที่เลือกในปัจจุบัน DefaultMutableTreeNode SelectNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); String nodeName = SelectNode toString (); label.setText("โหนดที่คุณกำลังเลือกคือ: "+nodeName); } โมฆะสาธารณะคงที่ main (String args []) { Tree d = new Tree (); } }
เมนูต้นไม้ที่สร้างขึ้นในบทความนี้ตามระดับและรุ่นคล้ายกับการสร้างแถบเมนู ฉันสงสัยว่าเพื่อนของคุณเชี่ยวชาญหรือไม่?