1
A
回答
0
- 第一:您需要设置一个对象(用自己的财产)的节点下面的方法:
Group aGroup = new Group(); //Obviously use your correct constructor
DefaultMutableTreeNode node = new DefaultMutableTreeNode(yourObject);
记住实施toString
组中的方法
- 第二个:创建一个扩展DefaultTreeCellRenderer
一个新的类并覆盖getTreeCellRendererComponent
这样的:
public class MyRenderer extends DefaultTreeCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean exp, boolean leaf, int row, boolean hasFocus) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
if(node.getUserObject().getYourProperty()){
setTextNonSelectionColor(Color.BLACK);
setBackgroundSelectionColor(Color.BLUE);
setTextSelectionColor(Color.WHITE);
setBorderSelectionColor(Color.WHITE);
}
else{
setTextNonSelectionColor(Color.LIGHT_GRAY);
setBackgroundSelectionColor(Color.RED);
setTextSelectionColor(Color.WHITE);
setBorderSelectionColor(Color.WHITE);
}
super.getTreeCellRendererComponent(
tree, value, sel, exp, leaf, row, hasFocus);
return this;
}
}
- 第三:你的渲染器设置为树:
yourTree.setCellRenderer(new MyRenderer());
0
难道你不可能使用这样的东西?不确定的实用性,而不是测试它
tree.addMouseListener (new MouseAdapter(){
public void mousePressed (MouseEvent e){
// Check for right click
if (SwingUtilities.isRightMouseButton(e)){
int selection[] = tree.getSelectionRows();
for(int i=0; i< selection.size; i++){
tree.removeSelectionInterval(selection[i], selection[i]);
}
}
}
相关问题
- 1. 禁用某些节点
- 2. 仅禁用某些关键字的Perl语法突出显示
- 3. 突出显示matplotlib矩阵上的某些点
- 4. 禁用cytoscape.js中节点和边缘的突出显示
- 5. Highcharts选择事件禁用突出显示效果
- 6. Solr突出显示某些html字符
- 7. Solr不突出显示某些词
- 8. 使用jquery突出显示效果
- 9. 更改Nimbus LaF处理突出显示的JTree节点的方式
- 10. JTree不显示添加的节点
- 11. JTree TreeCellRenderer不突出显示选择
- 12. d3js突出显示连接的节点
- 13. 点击时如何突出显示某些元素?
- 14. 如何在回归中突出显示某些点
- 15. Jtree在添加节点时未显示!
- 16. 如何突出显示树节点
- 17. smartgwt突出显示树节点文本
- 18. 突出显示SWT树节点
- 19. jQuery手机突出显示效果
- 20. 谷歌翻译突出显示效果
- 21. IOS8 UIButton突出显示效果
- 22. jquery效果突出显示不工作
- 23. JTree显示与子节点相同的节点
- 24. 如何在MVCSiteMapProvider的某些节点上禁用缓存?
- 25. 如何禁用某些HTML元素上的缩放效果第
- 26. 复制某个节点的JTree
- 27. 在bootstrap-datepicker上突出显示某些日期
- 28. 在Android上突出显示某些日期CalendarView
- 29. 如何在android日历上突出显示某些日期
- 30. Resharper插件突出显示在某些类型上失败
你可能想使用[JTree的选择监听器] (http://docs.oracle.com/javase/tutorial/uiswing/events/treeselectionlistener.html) – SuperRetro
@SuperRetro:你确定吗?这看起来更像是TreeCellRenderer的一项工作。 –
更改文字样式的示例。希望你从那里得到一些想法。 http://stackoverflow.com/questions/10976594/changing-text-style-of-defaultmutabletreenode – anonymous