- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 CheckBoxTree 类,它是 JIDE 公共(public)层包 (http://jidesoft.com/products/oss.htm) 的一部分。我想要做的是保存并加载 CheckBoxTreeSelectionModel 的状态,它跟踪哪些框被选中或未被选中。我可以通过保存 SelectionModel.getSelectionPaths() 来保存它,但我的问题是加载它。当我选择Model.setSelectionPaths()时,它只检查路径的根和叶的框,而不检查中间的任何框。奇怪的是,当我保存 getSelectionPaths() 的结果然后将其直接输入 setSelectionPaths() 时,也会发生这种情况。
对于 FileSystemModel,我使用了一些我发现的代码,这些代码喜欢使用 File 对象而不是 TreeNodes。我尝试了在网上不同地方找到的 FileSystemModels 和 CheckBoxTrees 的不同组合,结果总是相同的。我可能在这个问题上花了近 20 个小时……承认这一点有点尴尬。如有任何帮助,我们将不胜感激!
我的代码如下。这将创建 CheckBoxTree 并尝试使用“/Documents and Settings/Administrator”加载它,这会导致“/”和“Administrator”及其所有子项被检查,但不会检查“Documents and Settings”。
public class CheckBoxTreeFrame {
private FileSystemModel fileSystemModel = null;
private CheckBoxTree checkBoxTree = null;
private JFrame main_frame = null;
private CheckBoxTreeSelectionModel selectionModel = null;
public CheckBoxTreeFrame(){
// create the model
fileSystemModel = new FileSystemModel(new File(File.separator));
// use the model for the Tree
checkBoxTree = new CheckBoxTree(fileSystemModel);
checkBoxTree.setEditable(false);
// model for the checkboxes (not the directory structure)
selectionModel = checkBoxTree.getCheckBoxTreeSelectionModel();
// event listener
checkBoxTree.getCheckBoxTreeSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
System.out.println(selectionModel.getSelectionPath());
}
});
// setup a little UI window for the tree.
main_frame = new JFrame("Frame Title");
main_frame.add(checkBoxTree);
main_frame.setSize(400, 400);
main_frame.setVisible(true);
// run the loading test
runTest();
}
public void runTest(){
File[] finalPath = new File[3];
finalPath[0] = (File)selectionModel.getModel().getRoot();
finalPath[1] = new File(finalPath[0],"Documents and Settings");
finalPath[2] = new File(finalPath[1],"Administrator");
selectionModel.setSelectionPath(new TreePath(finalPath));
}
}
谢谢!!
最佳答案
CheckBoxTreeSelectionModel 基本上是一个 DefaultTreeSelectionModel(如在 Swing 中)。树路径必须存在于 TreeModel 中。我不认为在 runTest 中创建 TreePath 的方式会创建相同的树路径。最好从树上获取树路径。试试这个,它会起作用的。
checkBoxTree.getCheckBoxTreeSelectionModel().addSelectionPath(checkBoxTree.getPathForRow(2));
关于java - 如何使用 CheckBoxTreeSelectionModel 为 JIDE CheckBoxTree setSelectionPaths()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5968293/
我正在使用 JTree 并选择树中的所有节点 (Ctrl-A)。我的树包含 14000 个 parent ,每个 parent 都有一个 child ,所以树总共包含 28000 个节点。以下是代码片
我正在使用 CheckBoxTree 类,它是 JIDE 公共(public)层包 (http://jidesoft.com/products/oss.htm) 的一部分。我想要做的是保存并加载 Ch
我是一名优秀的程序员,十分优秀!