我是用tree将数据库中所查到的数据遍历出来,
生成树的代码:ArrayList Users=cm.getUsers(UserID);//得到结果集
for(int i=0;i<Users.size();i++){
UserBean ub=(UserBean)Users.get(i);
DefaultMutableTreeNode Levels = new DefaultMutableTreeNode(ub.getUserName());
allTreeNodeNameList.add(ub.getUserName());
node.add(Levels);//node之前已经定义:DefaultMutableTreeNode node = new DefaultMutableTreeNode("分类");
}这样就能将查出来的UserName遍历成一个一层的树。
现在遇到一个问题就是:
从数据库里查到的是两个字段如:UserID与UserName。
我怎么也得到UserID呀?我查文档有个:DefaultMutableTreeNode(Object userObject) ,就是说节点中可以插入对象,我也试了下:ArrayList Users=cm.getUsers(UserID);//得到结果集
for(int i=0;i<Users.size();i++){
UserBean ub=(UserBean)Users.get(i);
DefaultMutableTreeNode Levels = new DefaultMutableTreeNode(ub);
allTreeNodeNameList.add(ub);
node.add(Levels);
}在获取的时候我这么写的:DefaultMutableTreeNode SelectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
UserBean ub= (UserBean)SelectedNode.getUserObject();
System.out.println("用户名:"+ub.getUserName());
System.out.println("用户ID:"+ub.getUserID());这样两个都能输出,说明获取成功了,但出现问题就是构造的树都显示成manage.UserBean@1d05c81
怎么才能把显示的也变成UserName的内容呀?
生成树的代码:ArrayList Users=cm.getUsers(UserID);//得到结果集
for(int i=0;i<Users.size();i++){
UserBean ub=(UserBean)Users.get(i);
DefaultMutableTreeNode Levels = new DefaultMutableTreeNode(ub.getUserName());
allTreeNodeNameList.add(ub.getUserName());
node.add(Levels);//node之前已经定义:DefaultMutableTreeNode node = new DefaultMutableTreeNode("分类");
}这样就能将查出来的UserName遍历成一个一层的树。
现在遇到一个问题就是:
从数据库里查到的是两个字段如:UserID与UserName。
我怎么也得到UserID呀?我查文档有个:DefaultMutableTreeNode(Object userObject) ,就是说节点中可以插入对象,我也试了下:ArrayList Users=cm.getUsers(UserID);//得到结果集
for(int i=0;i<Users.size();i++){
UserBean ub=(UserBean)Users.get(i);
DefaultMutableTreeNode Levels = new DefaultMutableTreeNode(ub);
allTreeNodeNameList.add(ub);
node.add(Levels);
}在获取的时候我这么写的:DefaultMutableTreeNode SelectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
UserBean ub= (UserBean)SelectedNode.getUserObject();
System.out.println("用户名:"+ub.getUserName());
System.out.println("用户ID:"+ub.getUserID());这样两个都能输出,说明获取成功了,但出现问题就是构造的树都显示成manage.UserBean@1d05c81
怎么才能把显示的也变成UserName的内容呀?
return username;
}
方法和willkinson_wang 说的差不多,但不是重写UserBean的toString()方法。
我是写了一个DefaultMutableTreeNode的子类,继承DefaultMutableTreeNode,里面加的UserName和UserID的属性和get()、set()方法,把代码贴出来://继承DefaultMutableTreeNode的bean
class NodeBean extends DefaultMutableTreeNode {
public NodeBean(Object userObject){//这里重载了DefaultMutableTreeNode的构造方法
super(userObject);
}
private long UserID;
private String name_zh;
public long getUserID() {
return UserID;
}
public void setUserID(long UserID) {
UserID = UserID;
}
public String getUserName() {
return UserName;
}
public void setUserName(String UserName) {
this.UserName = UserName;
}
}调用的代码:NodeBean SelectedNode = (NodeBean)tree.getLastSelectedPathComponent();
long UserID=SelectedNode.getUserID();//这样就可以得到UserID和UserName的值了
String UserName=SelectedNode.getUserName();我在网上查到的资料甚少,有的那么几个也是重写toString()的,不知道为什么没人想到继承
DefaultMutableTreeNode ^_^
感谢willkinson_wang耐心的解答