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.