最好是能给一个简单的例子了~~!!
关于JTree监听的,
就是左边是JTree树,双击对应的结点能在右边显示对应的面板,这样的功能要怎么实现?
谢谢~!!
------解决方案--------------------------------------------------------
- Java code
//中忙你写了个,看看吧import java.awt.Color;import javax.swing.*;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCellRenderer;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.TreePath;public class TestJTree implements TreeSelectionListener { JTree tree; DefaultMutableTreeNode root; DefaultTreeModel model; JSplitPane mainSplitpane; public TestJTree() { mainSplitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); // 分割面板 model = new DefaultTreeModel(root); // 设置树的缺省模式 tree = new JTree(model); root = new DefaultMutableTreeNode("TestTree");//树根 DefaultMutableTreeNode level1 = new DefaultMutableTreeNode("A"); DefaultMutableTreeNode level2 = new DefaultMutableTreeNode("分支1"); // 树叶 DefaultMutableTreeNode level3 = new DefaultMutableTreeNode("分支2"); level1.add(level2); level1.add(level3); root.add(level1); tree = new JTree(root); DefaultTreeCellRenderer render = new DefaultTreeCellRenderer(); // 树叶 render.setTextSelectionColor(Color.blue); // 选择时候的颜色 render.setTextNonSelectionColor(Color.black); // 非选择时候颜色 tree.setCellRenderer(render); tree.addTreeSelectionListener(this); JPanel firstimg = new JPanel(); firstimg.setLayout(null); ImageIcon img = new ImageIcon("img/firstimg.jpg"); JLabel imgLabel = new JLabel(img); // 面板,此处实际是一张图片 imgLabel.setBounds(0, 0, img.getIconWidth(), img .getIconHeight()); firstimg.add(imgLabel); mainSplitpane.setDividerLocation(185); mainSplitpane.setLeftComponent(tree); mainSplitpane.setRightComponent(firstimg); JFrame jf = new JFrame("TestTree"); jf.setSize(900, 600); jf.setContentPane(mainSplitpane); jf.setLocationRelativeTo(null); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void valueChanged(TreeSelectionEvent e) { if (e.getSource() == tree) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree .getLastSelectedPathComponent(); if (node.isLeaf()) { System.out.println(node.toString()); TreePath visiblePath = new TreePath(model.getPathToRoot(node)); System.out.println(visiblePath.toString()); if (node.toString().equals("分支1")) { //mainSplitpane.setRightComponent(...do what you want here...); 重点在这里 } } } } public static void main(String[] args) { new TestJTree(); }}