java 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(); }}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值