1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| public class JTreeDemo {
private final static AtomicInteger IDFACTORY = new AtomicInteger();
public static void main(String[] args) {
final JFrame frame = new JFrame("Démo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final DefaultMutableTreeNode root = new DefaultMutableTreeNode("ROOT");
final DefaultTreeModel model = new DefaultTreeModel(root);
final JTree jtree = new JTree(model);
final JButton buttonAdd = new JButton("Add");
final JButton buttonInsert = new JButton("Insert");
frame.add( jtree );
frame.add( buttonAdd, BorderLayout.NORTH);
frame.add( buttonInsert, BorderLayout.SOUTH);
buttonAdd.addActionListener(e-> add(jtree, model));
buttonInsert.addActionListener(e-> insert(jtree, model));
jtree.setSelectionPath(new TreePath(root));
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static void add(JTree jtree, DefaultTreeModel model) {
final TreePath selectedPath = jtree.getSelectionPath();
final DefaultMutableTreeNode node = (DefaultMutableTreeNode)selectedPath.getLastPathComponent();
final DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("NODE " + IDFACTORY.getAndIncrement());
model.insertNodeInto(newNode, node, node.getChildCount());
jtree.expandPath(new TreePath(node.getPath()));
}
private static void insert(JTree jtree, DefaultTreeModel model) {
final TreePath selectedPath = jtree.getSelectionPath();
final DefaultMutableTreeNode node = (DefaultMutableTreeNode)selectedPath.getLastPathComponent();
final DefaultMutableTreeNode parent = (DefaultMutableTreeNode)node.getParent();
final DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("NODE " + IDFACTORY.getAndIncrement());
if ( node.getParent()!=null ) {
model.insertNodeInto(newNode, parent, parent.getIndex(node));
}
else {
JOptionPane.showMessageDialog(jtree, "Impossible d'insérer ici");
}
}
} |
Partager