Tag: treemodel

在最后修改区域扩展Jtree?

我正在使用dom4j从dom4j文档创建DocumentTreeModel。 我在JScrollPane显示了这个DocumentTreeModel。 我有一个按钮,为dom4j文档添加一个新节点,并重新创建DocumentTreeModel 我使用的是getPathForRow,但这看起来非常有限。 我需要能够使用多个树深度。 基本上寻找像tree.getPathOfLastModifiedChildrensParent()这样的东西 onAddNewNodeButtonClickEventFired { dom4jdocument.addElement( “1” ); tree.setModel(new DocumentTreeModel(dom4jdocument)); tree.expandPath(tree.getPathForRow(1)); } 基本上我每次编辑文档时都试图让Jtree重绘文档。

存储jtree的状态/扩展节点以恢复状态

我正在和JTree合作。 我想知道什么是最好的方法来了解在JTree中扩展哪些节点以便保存其状态(即保存所有扩展路径)。 因此,如果我调用model.reload() ,Jtree将不会保持折叠状态,但我将能够将其原始状态恢复到用户,即,将扩展所有扩展节点。

从JTree添加和删除节点

我有一个非常基本的JTree 。 因为我匆忙,如果不需要,我宁愿不使用TreeModel 。 我写了一个SSCCE来揭露这个问题: 有时我会添加一个节点。 其他时候我删除它们。 当我按下Add ,正确添加了一个节点。 当我推送Remove ,它应该删除节点,但它不会。 此外,如果我尝试添加多个节点,树只会保留我添加的第一个节点。 我为JTree编写了一个更新方法,首先擦除从根节点挂起的所有节点,然后查看我必须创建的节点和子节点。 除了不使用TreeModel操作树之外,我在这里做错了什么? import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; public class TreeTest { private JFrame myFrame; private JTree myTree; private JButton addButton, removeButton; private int numberOfNodes; […]

TreeModel创建

我对Java中的树模型有一些疑问。 在课堂上的最后13周,我们一直在开发一名联系人经理。 此联系人管理器具有各种组件:联系人可以是业务联系人或个人联系人,每个联系人都有自己的一组事件。 他们还有地址,社交网络和电话号码。 最后一项任务我们必须从外部txt文件中读取信息并在我们的项目中实现它。 那很好。 现在他希望我们从所述文本的信息中构建一个treeModel,但是我很难理解这个树模型是如何工作的。 例如,root,parent,children,nodes都是我想要定义但却非常困难的单词。 在这种情况下,我的根将是我的联系人经理,我的父母是联系人,孩子是地址和东西? 如果有人能帮我理解它会真的有帮助。 以下是作业的摘录,如果它可以帮助您更多地理解我的问题: 创建扩展JFrame的类ContactManagerFrame。 它的构造函数将把一个ContactManager对象作为参数(从保存在磁盘上的序列化文件中检索)。 创建和布局所需的图形组件。 (提示:使用JPanel对过滤function的组件进行分组,将JTree添加到JScrollPane,在添加组件时使用BorderLayout) 创建方法createNodes(),该方法将对应于树的根的DefaultMutableTreeNode(即“Contacts”节点)和与用户指定的filter对应的String作为参数。 此方法应为联系人和每个联系人引用的对象创建节点,并在树结构中组织它们,如图1所示。您应该避免创建空父节点(例如,如果联系人没有任何地址,您不应为此特定联系人添加父节点“地址”)。 如果指定的filter是空字符串,则createNodes()将包括存储在ContactManager对象中的所有联系人。 在任何其他情况下,createNodes()将包含ContactManager中方法searchContacts()返回的联系人。 从根节点创建DefaultTreeModel对象。 使用DefaultTreeModel初始化JTree组件。 我不是要求你们任何人为我或任何事情解决它。 我真的很想了解它。 非常感谢你!

Java:如何在JTree中显示XML文件

我想有办法在JTree显示XML文件的内容。 我已经使用DOM,通过实现自定义TreeModel (和TreeCellRenderer )来完成此操作。 然而它非常笨重(很多变通方法和hackery)并且边缘相当粗糙。 是否有人知道如何让JTree显示XML文件的内容,用SAX解析? 谢谢!

在不重新绘制树的情况下更新JTree中的ImageIcon?

基本上我在DefaultTreeNode()的UserObject()中编辑属性private string status=”OK” 。 我有一个CustomRenderer implements DefaultCellRenderer ,它通过呈现TreeNode的UserObject的“OK”属性来设置Icon。 最初,当我选择一个节点时,图标会发生变化。 我正在使用Tree.revalidate()和Tree.repaint() ,并且正在反映更改。 但是,我不确定这是否非常有效。 这样做的正确方法是什么? 我尝试了TreeModel.nodesChanged(new DefaultMutableTreeNode(myUserObject))但TreeNodeChanged event不会触发。 因此,每次更改TreeNode的用户工具以查看图形更新时,我是否坚持使用重新绘制整个树?