JTree 默认显示多个节点被选中
来源:互联网 发布:淘宝传单设计店怎么样? 编辑:程序博客网 时间:2024/05/16 19:36
private JTree TreeSelectedContainer() {TreeInfo = GoogleInformation.navagation; DefaultMutableTreeNode root = new DefaultMutableTreeNode("Google News Category"); DefaultMutableTreeNode[] node = new DefaultMutableTreeNode[TreeInfo.size()]; DefaultTreeModel treeModel = new DefaultTreeModel(root); //插入子节点node1,node2 System.out.println("st.NewStorySelected.size() :\t"+st.NewStorySelected.size()); TreePath[] SelectedNS = new TreePath[100]; int CountNS = 0; for(int i=0; i< TreeInfo.size(); i++) { node[i] = new DefaultMutableTreeNode( TreeInfo.get(i).name); treeModel.insertNodeInto(node[i],root,root.getChildCount()); DefaultMutableTreeNode[] leafnode = new DefaultMutableTreeNode[TreeInfo.get(i).child.size()]; for(int j =0 ; j < TreeInfo.get(i).child.size(); j++) { leafnode[j] = new DefaultMutableTreeNode(TreeInfo.get(i).child.get(j).name); treeModel.insertNodeInto(leafnode[j],node[i],node[i].getChildCount()); for(int find_i = 0; find_i < st.NewStorySelected.size(); find_i++) { if((st.NewStorySelected.get(find_i)).equals((TreeInfo.get(i).child.get(j).name))) { <span style="background-color: rgb(255, 255, 51);">TreePath path = new TreePath(leafnode[j].getPath());</span> //System.out.println("\n"+CountNS+"\t"+st.NewStorySelected.get(find_i)+"\t"+TreeInfo.get(i).child.get(j).name); <span style="background-color: rgb(255, 255, 51);">SelectedNS[CountNS] = path;</span> CountNS++; } } } } //创建树对象 JTree tree = new JTree(treeModel); //TreePath visiblePath = new TreePath(getTreeModel().getPathToRoot(leafnode[j])); <span style="background-color: rgb(255, 255, 51);">tree.addSelectionPaths(SelectedNS);//TreePath[]</span> //设置Tree的选择为一次选择多个节点 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);// TreeSelectionModel.SINGLE_TREE_SELECTION); 这个是一次只能选择一个节点的选项 //创建节点绘制对象 DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); //设置字体 cellRenderer.setFont(new Font("Serif",Font.PLAIN,14)); cellRenderer.setBackgroundNonSelectionColor(Color.white); cellRenderer.setBackgroundSelectionColor(Color.yellow); // cellRenderer.setBorderSelectionColor(Color.red); //设置选或不选时,文字的变化颜色 cellRenderer.setTextNonSelectionColor(Color.black); cellRenderer.setTextSelectionColor(Color.blue); return tree;}
最终用了笨办法加亮所选的几个NewsStory。"St"是传入的Setting的设置的一些信息,其中包括在第一个页面中选取的News Story。找到他们对应的Path,然后添加到到所选里面。关键的代码用黄色高亮。
0 0
- JTree 默认显示多个节点被选中
- easyui tree 默认选中第一个节点
- JTREE节点不选中如何设置?
- swing jTree 节点刷新,默认全部展开
- jtree 默认展开树的全部节点
- 多个checkbook默认选中
- jquery EasyUi 添加节点、展开所有节点、默认选中第一个节点
- Swing之JTree篇:设置树选中节点背景色
- ztree显示选中节点
- Jquery ZTree 异步加载默认选中第一个节点下的第一个子节点
- checklistBox默认选中多个选项
- js 多个radio 默认选中
- 自己写的JTree的叶子节点,可以封装多个属性
- Extjs TreePanel选中子节点默认选中父节点,取消勾选父节点子节点默认取消
- 关于select2默认选中 动态选中 显示
- treeVStab默认选中第一个
- JTree添加选中事件
- JTree添加选中事件
- android的一些常用手机信息获取
- 亚马逊新模式:按阅读页数向作家支付报酬
- [Erlang] XML处理方案
- Makefile经典教程
- java中HttpServletRequest可获取的URI方法介绍
- JTree 默认显示多个节点被选中
- android-Service和Thread的区别
- 周记——20150622
- Xamarin iOS教程之页面控件
- 安卓制作闹钟
- makeKeyAndVisible的作用
- JS小知识点二:iframe
- 产品经理就是导演
- 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串