日期:2014-05-20  浏览次数:20735 次

Swing低级问题: Jtree 中 DefaultMutableTreeNode.setUserObject(myobj)后不起作用
我在代码中想要把

tree.setCellEditor(new DefaultCellEditor(new JTextField()){
public boolean stopCellEditing(){
  DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
  MyObject obj = new MyObject(); 
  selectedNode.setUserObject(obj);
}
}

我想把 selectedNode 的字符串 设置成自己的类MyObject ,但是如果第一次编辑了Jtree的一个结点后,第二次再进来编辑同一个节点 selectedNode.getUserObject() 出来的又是字符串,不是自己刚才setUserObject(obj) 的对象了,好像是在哪里又给覆盖了,请问有谁知道如何解决吗?


------解决方案--------------------
不是覆盖问题,你第一次实例化tree时,对象是Swing里的DefaultMutableTreeNode对象,对来的效果肯定是你想要的效果,第二实例化是你把对象付给了你所说的MyObject的,系统根本不认识你写的这个类,反应出来的可定是字符串了。
------解决方案--------------------
dddddddddddddddddddddddddddddd