我使用AWT/Swing制作了一个树形结构,现在实现了可以在某节点名称上双击后,使其由不可编辑变成可编辑状态(editable=true/false),类似于平时咱们修改一个文件/文件夹的名称,修改完成后按【回车】确定名称,但目前按【回车】后,只会看到树形结构的该节点在界面上发生了变化,相对应的XML属性未改变,采用的键盘监听事件只能做到对树形结构的监听,无法监听到这个编辑动作,请各位给出一个解决办法,或者已经有这种源代码的提供参考一下(希望注释下,方便阅读),谢谢各位!
解决方案 »
- 求JDK下载地址
- java类的方法声明和实现是否可以像C++一样分开
- httpclient登陆成功后,再执行抓取就跳转到登陆页面,这是为什么?(在线等,马上结贴给分)
- 大家来帮手找一下错!急急急急急急急急急!!!!!!!!!!!!!!!!!!!!!!!!!!谢谢!
- 急!一个关于JTable的构造问题!
- 问一JAVA基础题,主调函数传递引用地址给被调函数,为什么变量值没有被改变??
- 关于jtable的问题
- 那种股票系统的客户端是怎样找到服务器的数据库的?
- 主文件中的中文显示正常,但include进来的文件中的中文产生乱码?在线高分等待!
- 求助关于【位运算】的问题
- email组件问题,请指教
- JAVA菜鸟求高手指点
提供几个方法,自己筛选吧。
第一,你既然修改了树的节点,那么你一定需要修改这个tree的model吧。
treemodel接口中有这个方法:valueForPathChanged
void valueForPathChanged(TreePath path,
Object newValue)用户已将 path 标识的项的值更改为 newValue 时,进行通知。如果 newValue 表示一个真实的新值,则该模型应发布一个 treeNodesChanged 事件。 参数:
path - 用户已更改的节点的路径
newValue - TreeCellEditor 的新值如果你认为不够。给这个model加个监听
addTreeModelListener
void addTreeModelListener(TreeModelListener l)为树更改后发布的 TreeModelEvent 添加侦听器。 参数:
l - 要添加的侦听器
另请参见:treemodellistener里面。你要实现:
void treeNodesChanged(TreeModelEvent e)
在已经以某种方式更改节点(或同级节点集)后调用。
void treeNodesInserted(TreeModelEvent e)
在已将节点插入树中以后调用。
void treeNodesRemoved(TreeModelEvent e)
在已从树中移除节点后调用。
void treeStructureChanged(TreeModelEvent e)
在树结构中从某个给定节点开始向下的地方发生彻底更改之后调用。
你既然要修改数据,就要到缓存数据的地方去找。swing里面几乎都是这样,除了一些非常简单的控件,需要的东西都到model里去找。