2010-01-15 45 views
2

如在一个旧的文章描述我有JTreeTable工作:Sun Developer Network如何在JTreeTable中正确选择?

这里是相同的文件,但略作调整,为Java 6: http://edtaylor80.angelfire.com

如果你运行这个小例子程序,你会发现,选择按预期开始工作,当您单击一个随机单元格时,将选择整行。这种行为是需要的。但是,只要节点展开后行为发生变化,现在只能通过单击执行节点(名称)来选择行。我仍然希望能够通过单击一个随机单元格来选择整行。我如何修改源代码来完成此操作?

回答

1

在单击第一列以打开节点之前,JTable没有单元编辑器。一旦执行该操作,表格就会有一个活动单元格编辑器,它是AbstractCellEditor的一个实例,作为JTreeTable示例源的一部分。在其中的实施,你会发现这一点:

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

这得到由BasicTableUI当它确定是否调整选择或不叫。正如你所看到的,它总是会返回false。这就是为什么,一旦你打开一个节点,你会看到这种奇怪的选择行为。

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

+0

这对我有效。感谢您对NetBeans Outline的关注。 – clartaq 2010-01-15 15:05:30

+0

谢谢!我不愿意首先尝试netbeans Outline,从JXTreeTable中得到一个不好的经验,它的疯狂的静态不可见类阻止你以正常的方式改变组件的行为,但是NetBeans真的很棒!我现在已经将它添加到我的Eclipse项目中了! – 2010-01-15 15:16:26