Selektierung zwischen JTrees übertragen
-
Hi,
ich habe 2 JTrees, bei denen folgendes passieren soll: Wenn ich in dem einen einen Knoten selektiere, soll dieser auch im anderen JTree selektiert werden. Leider bekomme ich das nicht zum Laufen. Folgender Code sollte eigentlich laufen:import javax.swing.JFrame; import javax.swing.JSplitPane; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; public class TreeViewer extends JFrame { public TreeViewer(){ setSize(500, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JTree tree1 = new JTree(createTreeStructure()); JTree tree2 = new JTree(createTreeStructure()); tree2.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent treeSelectionEvent){ TreePath[] treePaths = treeSelectionEvent.getPaths(); for(int i = 0; i < treePaths.length; i++){ if(treeSelectionEvent.isAddedPath(i)){ tree1.expandPath(treePaths[i]); tree1.setSelectionPath(treePaths[i]); } } } }); JSplitPane splitPane = new JSplitPane(); splitPane.setLeftComponent(tree1); splitPane.setRightComponent(tree2); getContentPane().add(splitPane); setVisible(true); } private DefaultMutableTreeNode createTreeStructure(){ DefaultMutableTreeNode childNode2 = new DefaultMutableTreeNode("Child node 2"); DefaultMutableTreeNode childNode1 = new DefaultMutableTreeNode("Child node 1"); DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Root node"); rootNode.add(childNode1); childNode1.add(childNode2); return rootNode; } public static void main(String[] arguments){ new TreeViewer(); } }
Sieht jemand das Problem?
-
Jeder der Bäume hat seine eigenen Knoten. Daher kannst du nicht den TreePath von dem einen im anderen verwenden.