如何在JTreeTable中获得正确的选择?

时间:2010-01-15 11:36:51

标签: java swing

我正在使用JTreeTable,如以下文章中所述:Sun Developer Network

以下是相同的文件,但对java 6略有调整: http://edtaylor80.angelfire.com

如果运行这个小示例程序,您会发现选择按预期开始工作,单击随机单元格时会选择整行。这种行为是期望的。但是,一旦扩展了节点,行为就会发生变化,现在只能通过单击actucal节点(名称)来选择行。我仍然希望能够通过单击随机单元格来选择整行。如何修改源代码来实现这一目标?

1 个答案:

答案 0 :(得分:1)

在您单击第一列以打开节点之前,JTable没有单元格编辑器。执行该操作后,该表具有一个活动的单元格编辑器,该编辑器是AbstractCellEditor示例源的一部分JTreeTable的实例。在其中的实施中,您将找到:

public boolean shouldSelectCell(EventObject anEvent) { return false; }

当BasicTableUI确定是否调整选择时,它会被调用。如您所见,它将始终返回false。这就是为什么,一旦打开节点,您将看到这种奇怪的选择行为。

关于树表的主题,我建议您查看NetBeans的Outline。这是一个易于使用的实现,比Sun的JTreeTable示例复杂得多。您可以在this post中找到链接和演示。