求助关于JTree里面每个单元格的绘制,求大神,帅哥help下下。分少,只能在这里发帖了,希望帮助我下下呀。

孤狼仔 2013-04-14 09:24:43
最近在tree里面的单元格的绘制,想根据学生在不在线,是男是女给给每个节点添加不同的图片。但是添加的图片不对位,就是讲这个学生是男的,但是添加给他的图片是女的,代码逻辑是没有问题的,关键是我不知道单元格绘制是一个什么样的过程。具体(关键)代码如下
tree.setCellRenderer(new MyCellRenderer()); //给这个tree配置单元绘制模式
//初始化叶子节点
ResultSet rs=sw.query("kqxt_manager","v_course",Teacher.getCourse());
try {
while(rs.next()){
Student student=new Student();
student.setNum(rs.getString("v_studentId"));
student.setName(rs.getString("v_studentName"));
student.setSex(rs.getString("e_sex"));
student.setHost(rs.getString("e_host"));
DefaultMutableTreeNode dmt=new DefaultMutableTreeNode(rs.getString("v_studentName")); //每个学生节点添加姓名
Variable.sb.put(rs.getString("v_studentName"), student); //通过键值对确定学生
root.add(dmt); //将每个直接点添加到根下
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
单元格绘制代码
public Component getTreeCellRendererComponent(JTree tree,Object value,boolean selected,
boolean expanded,boolean leaf,int row,boolean hasFocus){
super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
DefaultMutableTreeNode node=(DefaultMutableTreeNode)value;
String name=(String) node.getUserObject();
if(leaf&&name!=null){
Student student = Variable.sb.get(name);
//sb是一个hashmap,通过姓名这个键可得到具体学生的实体
String sex=student.getSex();
//该学生的性别
String host=student.getHost(); //该学生的主机状态是(0或1)代表在线与不在线
liyi.p(name+"==="+sex+" "+host);
if(sex.equals("woman")){
if(host.equals("0")){
this.setLeafIcon(new ImageIcon("images/girlgo.jpg")); //女生不在线的图片
}else{
this.setLeafIcon(new ImageIcon("images/girlcome.jpg"));
}
}else if(sex.equals("man")){
if(host.equals("0")){
this.setLeafIcon(new ImageIcon("images/boygo.jpg")); //男生不在线的图片
}else{
this.setLeafIcon(new ImageIcon("images/boycome.jpg"));
}
}
}
return this;
}
一共只有3个学生,里面的打印语句运行了18次?
李益===man 0
周光魁===man 0
李诗绮===woman 0
李益===man 0
周光魁===man 0
李诗绮===woman 0
李益===man 0
周光魁===man 0
李诗绮===woman 0
李益===man 0
周光魁===man 0
李诗绮===woman 0
李益===man 0
周光魁===man 0
李诗绮===woman 0
李益===man 0
周光魁===man 0
李诗绮===woman 0
这是为啥呀?
我是男的怎么是女的图片。getTreeCellRendererComponent()方法里面是怎么运行的呀?
help,help,help
...全文
151 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤狼仔 2013-04-14
  • 打赏
  • 举报
回复
我都不知道Java Tutoria是什么东西
Inhibitory 2013-04-14
  • 打赏
  • 举报
回复
Java Tutorial里面讲TreeCellRenderer非常仔细
zfqzfx 2013-04-14
  • 打赏
  • 举报
回复
自己学学习啊。。。

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧