我正在使用JTreeTable,如以下文章中所述:Sun Developer Network
以下是相同的文件,但对java 6略有调整: http://edtaylor80.angelfire.com
如果运行这个小示例程序,您会发现选择按预期开始工作,单击随机单元格时会选择整行。这种行为是期望的。但是,一旦扩展了节点,行为就会发生变化,现在只能通过单击actucal节点(名称)来选择行。我仍然希望能够通过单击随机单元格来选择整行。如何修改源代码来实现这一目标?
答案 0 :(得分:1)
在您单击第一列以打开节点之前,JTable
没有单元格编辑器。执行该操作后,该表具有一个活动的单元格编辑器,该编辑器是AbstractCellEditor
示例源的一部分JTreeTable
的实例。在其中的实施中,您将找到:
public boolean shouldSelectCell(EventObject anEvent) { return false; }
当BasicTableUI确定是否调整选择时,它会被调用。如您所见,它将始终返回false
。这就是为什么,一旦打开节点,您将看到这种奇怪的选择行为。
关于树表的主题,我建议您查看NetBeans的Outline
。这是一个易于使用的实现,比Sun的JTreeTable示例复杂得多。您可以在this post中找到链接和演示。