java - JTreeTable 选择监听器索引

标签 java swing jtable listener jtreetable

我使用的 JTreeTable 取自 java sun 示例。 我有以下结构:

+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 中选定的行。 你知道我该如何解决这个问题吗? 谢谢

最佳答案

您需要节点的 TreePath,或者

TreePath path = treeTable.pathForRow(selected);

或者直接监听TreeSelectionModel。不过,不确定旧的树表是否公开了它。更好地使用 SwingX project 中的 JXTreeTable ,从那时起已经走了很长一段路了:-)

关于java - JTreeTable 选择监听器索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307440/

相关文章:

java - 请推荐漂亮的 Java Swing 组件库

java - CardLayout,来自单独类的面板未显示

java - 使用 JScrollPane 后 JTable 消失

swing - 如何在 java swing 中设置样式?

java - 可以设置JTable的单元格溢出吗?

java - JTableModelListener.tableChanged() 线程安全吗?

java - 如何创建一个监听 TreeMap 变化的监听器?

java - windows相当于linux的/dev/video0是什么?

java - 在运行时更改哈希码

java - 使用gson在json中剪切太长的字符串