【问题标题】:get underlying node data on clicked node on JTree?在 JTree 上的单击节点上获取底层节点数据?
【发布时间】:2011-09-03 02:33:49
【问题描述】:

基本上我使用 dom4j 库将 DefaultTreeModel 渲染到 JTree 中。 DefaultTreeModel 解析 XML 文档。每个 XML 节点都包含属性、名称、id 等信息。

基本上,我在这个 Jtree 中添加了一个 actionlistener。我想访问包含节点信息(如属性、名称等)的底层 DefaultTreeModel 节点。

 jtree.addMouseListener(new MouseInputAdapter(){
                public void mouseClicked(final java.awt.event.MouseEvent evt) {
                    int rowLocation = tree.getRowForLocation(evt.getX(), evt.getY());                           
                            if (evt.getClickCount() == 1){
                                //get this element double clicked
                                Component dblClickedElement = tree.findComponentAt(evt.getX(), evt.getY());                     
                                                    }
                    });                
                }
            });

【问题讨论】:

    标签: java swing jtree dom4j treemodel


    【解决方案1】:

    这个呢?

    tree.getPathForRow(rowLocation).getLastPathComponent()
    

    【讨论】:

    • 甚至更容易,无需中间行:tree.getPathForLocation(evt.getX(), evt.getY());。由于用户可能不会单击某个元素,因此您可能需要在检索 getLastPathComponent() 之前检查结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2012-07-13
    • 2013-06-08
    • 2021-04-11
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多