tree的节点的显示的问题 首先生成自己的MyObject. 改写DefaultTreeCellRenderer 的方法 getTreeCellRendererComponent 在其中调用方法setText(MyObject.getTitle());//你想设置的标题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然你必须设置你的树节点的对应对象为DefaultMutableTreeNode(Object MyObject)或者setUserObject(Object MyObject) 谢谢CodeFans(NotJustCodesFan)我想我已经知道在哪里修改了.但是如何修改还是不太清楚object没有settext啊.并且defaulttreecellrenderer里面都是如修改icon,font,之类的函数,就是没有修改表示形式的函数 自己解决了呵呵给跟我一样可能遇到该问题的人一个提示吧参考下面这段代码public Component getTreeCellRendererComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row, boolean hasFocus) { String stringValue = tree.convertValueToText(value, isSelected, expanded, leaf, row, hasFocus); setEnabled(tree.isEnabled()); check.setSelected(((CheckNode)value).isSelected()); label.setFont(tree.getFont()); label.setText(stringValue); label.setSelected(isSelected); label.setFocus(hasFocus); if (leaf) { label.setIcon(UIManager.getIcon("Tree.leafIcon")); } else if (expanded) { label.setIcon(UIManager.getIcon("Tree.openIcon")); } else { label.setIcon(UIManager.getIcon("Tree.closedIcon")); } return this; } 做法有如下几种:1.myobject 里面覆盖 public String toString(){ return yourname;} 2. 继承DefaultMutableTreeNode, 生成自己的节点类MyTreeNode,在里面覆盖 public String toString(){ return ((myobject)getUserObject()).getYourName();} 3.继承DefaultTreeCellRenderer 生成自己的修饰类MyCellRender,在里面覆盖getTreeCellRendererComponent如下: if (value instanceof MyTreeNode) { myobject dataObject = (myobject) ( (MyTreeNode) value). getUserObject(); title = dataObject.getName(); } comp = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); setText(title); return comp;4.你得方法也不错比较通用的是方法2 关于JAVA写入EXCEL文件的问题 请高手解决问题,为啥运行时有问题。 怎样更新jTable中的数据………………………………!!急 初始化时怎么会这样啊????? jbuilder中如何生成javadoc 高分!! 如何读取如下结构的文件?? 怎么使子process和父process同用一个outputstream? 散分!同时交流一下看法。 java通过反射执行枚举的方法,求大神! java虚拟机内存回收 先回收堆,再回收栈???? 居然没有人问这个问题!!! 关于浮点数显示的问题
我想我已经知道在哪里修改了.但是如何修改还是不太清楚
object没有settext啊.
并且defaulttreecellrenderer里面都是如修改icon,font,之类的函数,就是没有修改表示形式的函数
呵呵
给跟我一样可能遇到该问题的人一个提示吧
参考下面这段代码
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean isSelected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
String stringValue = tree.convertValueToText(value, isSelected,
expanded, leaf, row, hasFocus);
setEnabled(tree.isEnabled());
check.setSelected(((CheckNode)value).isSelected());
label.setFont(tree.getFont());
label.setText(stringValue);
label.setSelected(isSelected);
label.setFocus(hasFocus);
if (leaf) {
label.setIcon(UIManager.getIcon("Tree.leafIcon"));
} else if (expanded) {
label.setIcon(UIManager.getIcon("Tree.openIcon"));
} else {
label.setIcon(UIManager.getIcon("Tree.closedIcon"));
}
return this;
}
1.
myobject 里面覆盖 public String toString(){ return yourname;}
2.
继承DefaultMutableTreeNode, 生成自己的节点类MyTreeNode,在里面覆盖 public String toString(){ return ((myobject)getUserObject()).getYourName();}
3.
继承DefaultTreeCellRenderer 生成自己的修饰类MyCellRender,在里面覆盖getTreeCellRendererComponent如下:
if (value instanceof MyTreeNode) {
myobject dataObject = (myobject) ( (MyTreeNode) value).
getUserObject();
title = dataObject.getName();
} comp = super.getTreeCellRendererComponent(tree, value, sel,
expanded, leaf, row, hasFocus);
setText(title); return comp;4.
你得方法也不错
比较通用的是方法2