JTreeTable选择侦听器索引

时间:2011-11-29 07:52:44

标签: java swing jtable listener jtreetable

我正在使用从java sun示例中获取的JTreeTable。 我有以下结构:

+1
+4
+7

表示3节点已折叠..

-1
--2
---3
-4
--5
---6
-7
--8
---9

这是扩展的结构。我已将ListSelectionListener添加到ListSelectionModel。

假设我从折叠结构中选择节点“4”..当我进入valueChanged(ListSelectionEvent e)方法时,

   e.getFirstIndex()  is equal to 1 (because at the index 0 there is the node "1")

但这意味着索引不是绝对的,而是与结构的状态有关。事实上,如果我扩展结构并在我再次选择节点“4”

之后
   e.getFirstIndex() is equal to 3

通过这种方式,我无法单独识别TreeTable中的选定行。 你知道我怎么解决这个问题? 谢谢

1 个答案:

答案 0 :(得分:3)

您需要TreePath到节点,

TreePath path = treeTable.pathForRow(selected);

或直接监听TreeSelectionModel。但是不确定那个旧的treeTable是否暴露了它。更好地使用SwingX project中的JXTreeTable,从那时起它已经走了很远的距离: - )