Fonction : Créer un menu arborescent Description : La création d'une structure de menu arborescente est similaire à la création d'une barre de menus et est créée en fonction de niveaux et de modèles.
Créez des objets de nœud racine, de nœud enfant et de nœud petit-enfant via la classe DefaultMutableTreeNode, puis utilisez DefaultTreeModel
La classe utilise le nœud racine pour créer un objet de modèle d'arborescence, puis insère l'objet nœud dans le modèle d'arborescence via la méthode treeModel.insertNodeInto.
Rendu :
Code:
import java.awt.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; public class Tree étend JFrame implémente TreeSelectionListener { private JLabel label() { super ("Menu Arborescence"); setSize(400,400); Container conteneur = getContentPane(); //Créer le nœud racine et le nœud enfant DefaultMutableTreeNode root = new DefaultMutableTreeNode("Text Editor"); DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("File"); DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Edit"); //Utiliser le nœud racine pour créer un TreeModel DefaultTreeModel treeModel = new DefaultTreeModel(root); ); //Insérer les nœuds enfants node1, node2 treeModel.insertNodeInto(node1,root,root.getChildCount()); treeModel.insertNodeInto(node2,root,root.getChildCount()); //Créez un nœud enfant du nœud node1 et insérez DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("Open" ) ; treeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); leafnode = new DefaultMutableTreeNode("Enregistrer"); treeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); ; treeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); leafnode = new DefaultMutableTreeNode("Close"); treeModel.insertNodeInto(leafnode,node1,node1.getChildCount()); //Créer un nœud enfant du nœud node2 et insérez-le leafnode = new DefaultMutableTreeNode("cut"); treeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); leafnode = new DefaultMutableTreeNode("copie"); treeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); treeModel.insertNodeInto(leafnode,node2,node2.getChildCount()); //Créer un objet arbre JTree tree = new JTree(treeModel); //Définir la sélection de Tree pour sélectionner un seul nœud à la fois tree.getSelectionModel() .setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); //Enregistrer l'écouteur tree.addTreeSelectionListener(this); tree.setRowHeight(20); //Créer un objet de dessin de nœud DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); //Définir la police cellRenderer.setFont(new Font("Serif",Font.PLAIN,14)); . setBackgroundNonSelectionColor(Couleur.blanc); cellRenderer.setBackgroundSelectionColor(Color.white); cellRenderer.setBorderSelectionColor(Color.red); //Définit la couleur changeante du texte lorsqu'il est sélectionné ou non cellRenderer.setTextNonSelectionColor(Color.black); //Ajouter l'objet arborescence au panneau de contenu containers.add(new JScrollPane(tree)); //Créer une étiquette label = new JLabel("Le nœud que vous sélectionnez actuellement est :",JLabel.CENTER); label.setFont(new Font("Serif",Font.PLAIN,14)); BorderLayout .SOUTH); setVisible(true); //Définir l'action de fermeture de la fenêtre setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Gérer l'événement TreeSelectionEvent public void valueChanged(TreeSelectionEvent event) { JTree tree = (JTree)event.getSource(); //Obtenir le nœud actuellement sélectionné DefaultMutableTreeNode selectionNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); toString (); label.setText("Le nœud que vous sélectionnez actuellement est : "+nodeName); } public static void main(String args[]) { Arbre d = new Tree(); } }
L'arborescence créée dans cet article en fonction des niveaux et des modèles s'apparente à la création d'une barre de menu. Je me demande si vos amis l'ont maîtrisé ?