(1)为treeNode节点添加鼠标监听器
DefaultMutableTreeNode task = new DefaultMutableTreeNode("任务");
DefaultMutableTreeNode downing = new DefaultMutableTreeNode("正在下载");
DefaultMutableTreeNode downfail = new DefaultMutableTreeNode("下载失败");
DefaultMutableTreeNode downfinish = new DefaultMutableTreeNode("下载完成");
task.add(downing);
task.add(downfail);
task.add(downfinish);
JTree tree = new JTree(task);
model = (DefaultTreeModel) tree.getModel();
tree.setShowsRootHandles(true);
tree.setEditable(true);
MouseListener m1 = new MouseAdapter()
{
public void mousePressed(MouseEvent e) //通常三个要素:事件源、事件、监听器,其中事件通常使用
{
/*
movepath = tree.getSelectionPath();
//TreeNode target = (TreeNode) movepath.getLastPathComponent();
TreeNode tn = (TreeNode) movepath.getLastPathComponent();
DefaultMutableTreeNode target = (DefaultMutableTreeNode)tn;
System.out.println(target.getSiblingCount());
*/
DefaultMutableTreeNode target = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
System.out.println("兄弟结点的个数:"+target.getSiblingCount());
//System.out.println("是否是子节点?"+target.isNodeChild(target));
}
};
tree.addMouseListener(m1);
JScrollPane navJSPane = new JScrollPane(tree); //将tree当做组件赋给JScrollPane
}
(二)设置树节点文字类型、边框、图片的CellRender类
zaowuzhu.add(rulai);
zaowuzhu.add(guanyin);
zaowuzhu.add(yudi);
rulai.add(sunwukong);
guanyin.add(taishanglaojun);
yudi.add(tianbing);
DefaultTreeCellRenderer cellRender = new DefaultTreeCellRenderer();
cellRender.setBackgroundNonSelectionColor(new Color(255,255,255));
cellRender.setBackgroundSelectionColor(new Color(180,250,140));
//设置选中状态节点边框的颜色
cellRender.setBorderSelectionColor(new Color(140,40,104));
//设置处于折叠状态非子叶节点的图标
cellRender.setClosedIcon(new ImageIcon("image/close.gif"));
//设置节点文本的字体
cellRender.setFont(new Font("SansSerif",Font.BOLD,16));
//设置叶子节点的图标
cellRender.setLeafIcon(new ImageIcon("image/leaf.png"));
//设置处于展开状态下非叶子节点的图标
cellRender.setOpenIcon(new ImageIcon("image/open.gif"));
//设置绘制非选中状态下节点文本的颜色
//cellRender.setTextNonSelectionColor(new Color(255,0,0));
//设置绘制选中状态下节点文本的颜色
//cellRender.setTextSelectionColor(new Color(0,0,255));
JTree tree1 = new JTree(zaowuzhu);
tree1.setCellRenderer(cellRender);
tree1.setShowsRootHandles(true);
}