如何制作JTree选择模型只允许兄弟选择?

时间:2011-02-01 16:50:30

标签: java swing jtree

我有一个jtree,我只希望用户能够选择兄弟节点。如果用户选择不是兄弟节点的节点,我希望取消选择先前选择的节点。 用户还应该能够选择不连续的兄弟节点。我希望扩展defaulttreeselectionmodel。

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:3)

好像你必须使用TreeSelectionModel(将存储当前选择状态)和TreeSelectionListener。一个示例算法可能如下:当您的选择更改时,如果您的TreeSelectionListener未处于活动模式,它将进入该模式(这很有用,因为您的侦听器会在某些情况下更新选择,而您不会想要疯狂的周期,想要你吗?)。然后,它使用TreeSelectionModel#getSelectionPaths()检查选定的节点。如果此数组大小为1,则只选择一个节点,并且一切都正常。如果它的大小大于1,那么你将不得不编写一些代码来确保这些节点是兄弟节点(作为一个例子,确保它们TreePath除了最后一部分之外是相同的。