Jtree
Transcript
Jtree
Jtree Introduzione a Jtree di Federico Cosco 1. Introduzione • Il Jtree è un componente Swing che perme<e la rappresentazione dei file in modo gerarchico (ad albero). 2. Sviluppo base di Jtree • In questo esempio si vuole rappresentare a video una lista di vegetali e di fruE in modo gerarchico. • Per far ciò, è necessario innanzitu<o creare una ‘root node’(nodo principale), cioè una cartella madre contenente i file ‘Vegetali’ e ‘FruE’. • I node sono rappresentaL nell’API Swing come TreeNode(javax.swing.tree.TreeNode). • Nel nostro caso useremo una sua estensione, cioè DefaultMutableTreeNode (javax.swing.tree.DefaultMutableTreeNode), che ha il vantaggio di modificare la rappresentazione da file a cartella nel caso in cui si aggiunge un file come figlio. Esempio di codice package jtreeesempio; import javax.swing.*; public class JtreeEsempio extends JFrame{ private JTree tree; public JtreeEsempio(){ //creiamo la root node DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root"); //creiamo i node-figli della root node DefaultMutableTreeNode vegetableNode = new DefaultMutableTreeNode("Vegetali"); DefaultMutableTreeNode fruitNode = new DefaultMutableTreeNode("Frutti"); //aggiungiamo i node-figli alla root node root.add(vegetableNode); root.add(fruitNode); //creiamo il Jtree passante dalla root node tree = new JTree(root); add(tree); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("Esempio Jtree"); this.pack(); this.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new JtreeEsempio(); } }); } } Eseguendo questo codice o<eniamo una finestra Lpo questa • A questo punto possiamo aggiungere dei figli ai node ‘vegetali’ e ‘fruE’ trasformandoli in so<ocartelle della ‘root node’: DefaultMutableTreeNode vegetableNode = new DefaultMutableTreeNode("Vegetali"); vegetableNode.add(new DefaultMutableTreeNode("Carota")); vegetableNode.add(new DefaultMutableTreeNode(”Pomodoro")); vegetableNode.add(new DefaultMutableTreeNode(”Insalata")); DefaultMutableTreeNode fruitNode = new DefaultMutableTreeNode("Frutti"); fruitNode.add(new DefaultMutableTreeNode(”Arancia")); fruitNode.add(new DefaultMutableTreeNode(”Limone")); fruitNode.add(new DefaultMutableTreeNode(”Mela")); fruitNode.add(new DefaultMutableTreeNode(”Kiwi")); • Eseguendo il programma o<erremo una finestra così: Possiamo dunque notare che aggiungendo dei file figli ai node ‘Vegetali’ e ‘FruE’, quesL ulLmi si sono trasformaL automaLcamente in so<ocartelle. Gli ulLmi node dell’albero sono anche deE leaf node (nodo foglia), ad indicare che è l’ulLmo file e non un’altra so<ocartella.