DefaultTreeSelectionModel.addSelectionPaths()的正确格式

时间:2011-05-09 18:24:13

标签: java checkbox jtree

我正在使用扩展DefaultTreeSelectionModel的类来创建CheckBoxTree。当单击树上的复选框节点时,它会触发一个MouseEvent,它直接从JTree(“树”)获取TreePath。

TreePath path = tree.getPathForLocation(me.getX(), me.getY());

将此“路径”传递给DefaultTreeSelectionModel.addSelectionPath()函数,并选择相应的CheckBoxes。到目前为止一切都很好!

我想要做的是将我自己的TreePath传递给DefaultTreeSelectionModel.addSelectionPath(),但到目前为止,我遇到了TreePath格式的问题,这似乎与我从上面的代码得到的TreePath有所不同,因为它没有同样的效果;那是我的问题。

当我单击CheckBox(工作方式)时,TreePath打印输出是“[/,Documents and Settings,Administrator]”,但要模拟我必须创建一个TreePath,如:

File[] finalPath = new File[3];
finalPath[0] = (File)parentNode; // parentNode is the root from the Model
finalPath[1] = new File("Documents and Settings");
finalPath[2] = new File("Administrator");
TreePath path = new TreePath(finalPath);

...这不起作用,因为索引1和2不引用根,但它打印输出为“[/,Documents and Settings,Administrator]”,就像工作点击方法一样。

然后我尝试了:

File[] finalPath = new File[3];
finalPath[0] = (File)parentNode; // parentNode is the root from the Model
finalPath[1] = new File(finalPath[0],"Documents and Settings");
finalPath[2] = new File(finalPath[1],"Administrator");
TreePath path = new TreePath(finalPath);

...选择“parentNode”并选择“Administrator”,但不选择“Documents and Settings”。打印输出为“[/,/ Documents and Settings,/ Documents and Settings / Administrator]”

所以我认为,它必须将所有三个部分作为单独的选择处理,这样任何出现奇数次的东西都会保持被选中,这就是“文档和设置”没有坚持的原因。所以,我试过了。

File[] finalPath = new File[1];
finalPath[0] = new File(parentNode+"Documents and Settings"+File.separator+"Administrator");
TreePath path = new TreePath(finalPath);

...没有选择任何东西。打印输出为“[\ Documents and Settings \ Administrator]”

所以,经过一段时间,我不知道,5个小时尝试各种排列,上面的是最接近我得到它,现在我在这里发布我的问题,希望得到回应。 感谢!!!!

0 个答案:

没有答案