Funktion: Erstellen eines Baummenüs Beschreibung: Das Erstellen einer Baummenüstruktur ähnelt dem Erstellen einer Menüleiste und basiert auf Ebenen und Modellen.
Erstellen Sie über die DefaultMutableTreeNode-Klasse Wurzelknoten-, untergeordnete Knoten- und Enkelknotenobjekte und verwenden Sie dann das DefaultTreeModel
Die Klasse verwendet den Stammknoten, um ein Baummodellobjekt zu erstellen, und fügt das Knotenobjekt dann über die Methode „treeModel.insertNodeInto“ in das Baummodell ein.
Darstellung:
Code:
import java.awt.*; import javax.swing.tree.*; import javax.swing.event.*; public class Tree erweitert TreeSelectionListener { private JLabel label; ("Baummenü"); setSize(400,400); Container container = getContentPane(); //Erstelle Wurzelknoten und untergeordneten Knoten DefaultMutableTreeNode root = new DefaultMutableTreeNode("Text Editor"); DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("Edit"); //Verwenden Sie den Root-Knoten, um ein TreeModel zu erstellen ); //Untergeordnete Knoten node1,node2 einfügen treeModel.insertNodeInto(node1,root,root.getChildCount()); treeModel.insertNodeInto(node2,root,root.getChildCount()); //Erstelle einen untergeordneten Knoten von Knoten node1 und füge DefaultMutableTreeNode ein 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()); //Erstelle einen untergeordneten Knoten von Knoten2 und füge es ein 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()); //Erstelle ein Baumobjekt JTree tree = new JTree(treeModel); //Stelle die Auswahl von Tree so ein, dass jeweils nur ein Knoten ausgewählt wird tree.getSelectionModel() .setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); //Registrieren Sie den Listener tree.addTreeSelectionListener(this); tree.setRowHeight(20); //Knotenzeichnungsobjekt erstellen DefaultTreeCellRenderer(); //Schriftart festlegen cellRenderer.setFont(new Font("Serif",Font.PLAIN,14)); . setBackgroundNonSelectionColor(Color.white); cellRenderer.setBackgroundSelectionColor(Color.black); cellRenderer.setBorderSelectionColor(Color.red); //Legen Sie die sich ändernde Farbe des Texts fest, wenn er ausgewählt ist oder nicht. cellRenderer.setTextSelectionColor(Color.blue); //Fügen Sie das Baumobjekt zum Inhaltsbereich hinzu container.add(new JScrollPane(tree)); //Label erstellen label = new JLabel("Der Knoten, den Sie gerade auswählen, ist:",JLabel.CENTER(new Font("Serif",Font.PLAIN,14)); BorderLayout .SOUTH); setVisible(true); //Sichtbare setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Verarbeiten des TreeSelectionEvent-Ereignisses public void valueChanged(TreeSelectionEvent event) { JTree tree = (JTree)event.getSource(); //Den aktuell ausgewählten Knoten abrufen DefaultMutableTreeNode SelectionNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); String nodeName = SelectionNode. toString (); label.setText("Der Knoten, den Sie gerade auswählen, ist: "+nodeName); } public static void main(String args[]) { Tree d = new Tree(); } }
Das in diesem Artikel nach Ebenen und Modellen erstellte Baummenü ähnelt dem Erstellen einer Menüleiste. Ich frage mich, ob Ihre Freunde es beherrschen.