访问netbeans大纲中的树对象

p45*_*53d 3 java swing outline

我正在使用Outlinenetbeans来显示一些结构化数据.

如何将选定的行映射到树中的对象?

tra*_*god 6

您可以查看今天宣布新的Swing Tree Table中的示例.看起来作者正在创建数据模型,因此响应节点选择应该会有所帮助.我org.netbeans.swing.outline.Outline在NetBeans 6.8中找到了这个类:

NetBeans/platform11/modules/org-netbeans-swing-outline.jar

附加物:

请注意,Outline降序来自JTable,因此如何使用表:用户选择可能会有所帮助.基于上面引用的示例,这里是一个监听器,它显示了当节点展开和折叠时行号的明显变化,并且选择保持不变:

outline.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
    @Override
    public void valueChanged(ListSelectionEvent e) {
        int row = outline.getSelectedRow();
        File f = (File) outline.getValueAt(row, 0);
        if (!e.getValueIsAdjusting()) {
            System.out.println(row + ": " + f);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

虽然临时,你可能看OutlineModelDefaultOutlineModel.前者同时实现了TreeModelTableModel和报价TreePathSupport; 后者提到"TableModelEvent和TreeModelEvent之间的阻抗不匹配".

就像JTable,视图中选定的行索引可能与模型中的相应行不匹配,可能是由于排序等.该getValueAt()方法似乎是一种方便的调用方式convertRowIndexToModel().这在Swing的可分离模型体系结构中很常见,它将每个组件的视图和控制器部分折叠成单个UI(用户界面)对象." 请参阅Swing架构概述.