JAVA SWing JTree 节点现实问题

时间:2021-06-03 12:34:05

今天在做一个swing的树型显示时候,遇到一个问题:

DefaultMutableTreeNode jTree  =   new  DefaultMutableTreeNode (tree);

tree是我自己定义的对象。 这样做的时候 界面上显示的是引用,而不是我的名字。


终于 发现了原因:

 在实体类里面要重写toString方法,DefaultMutableTreeNode 是通过userObject中的toString方法获取的显示名,于是在实体类里面加了

@Override
public String toString(){
return this.getName();
}


最后 成功了!


在JTree上点击事件的时候 通过treepath 获取node  通过node获取userObject

public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
JTree tree=(JTree) e.getSource();
TreePath path=tree.getSelectionPath();
DefaultMutableTreeNode node  =  (DefaultMutableTreeNode) path
                .getLastPathComponent();
Tree t=(Tree) node.getUserObject();
this.area.setText(t.getId()+"       "+t.getName()+"changed!");
}