哎,对Swing真不熟悉,只好请各位帮忙了。画面上两个控件,一个JTable,一个JTree。
在JTable的cell内登陆一段文字,不提交,就这样处于编辑状态。
JTree处于展开状态如下:
P1
 ∟P11
 ∟P12
点击JTree的P1前的图标,使数收拢起来。
在数的节点合并前,如何自动提交JTable中处于编辑状态的内容。我不想编写代码监听JTree的动作来进行提交JTable的操作。可以利用Swing本身的机制让JTable自动提交吗?
(类似于:Jtable中cell1处于编辑状态的时候,点击cell2,cell1会自动提交的。不要我们写代码控制)

解决方案 »

  1.   

    你可以看看“cell1处于编辑状态的时候,点击cell2,cell1会自动提交的”这块的实现代码,应该也是注册的一个监听器。你把这个监听器加到tree的节点合并这个触发器上面就好了
      

  2.   

     在table中加一句
    putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
      

  3.   

    可以给KeyBoardFocusManager添加监听,当焦点变更时触发KeyBoardFocusManager的propertyChange,当Focus从JTable失去时,将JTable提交
    但是,由于SWing的自身的限制,树在点击节点的图标时,树得不到焦点,所以,把树的自身特性改掉,让树在点击图标的时候获得焦点。
    如果不想做这种改变的话,恐怕只有监听JTree的动作才能实现了,没想到其他的办法