Java 树模型创建

Java 树模型创建,java,swing,tree,treemodel,Java,Swing,Tree,Treemodel,我有一些关于Java中树模型的问题 在过去的13周里,我们一直在开发一个联系人管理器。此联系人管理器具有各种组件:联系人可以是业务联系人,也可以是个人联系人,并且每个联系人都有自己的事件集。他们也有地址、社交网络和电话号码 上一个作业我们必须从外部的txt文件中读取信息,并在我们的项目中实现它。那很好。现在,他想让我们用上述文本中的信息构建一个树模型,但我很难理解这个树模型是如何工作的 例如,root、parent、children、nodes都是我试图定义的词,但都很难定义。在这种情况下,我的

我有一些关于Java中树模型的问题

在过去的13周里,我们一直在开发一个联系人管理器。此联系人管理器具有各种组件:联系人可以是业务联系人,也可以是个人联系人,并且每个联系人都有自己的事件集。他们也有地址、社交网络和电话号码

上一个作业我们必须从外部的txt文件中读取信息,并在我们的项目中实现它。那很好。现在,他想让我们用上述文本中的信息构建一个树模型,但我很难理解这个树模型是如何工作的

例如,root、parent、children、nodes都是我试图定义的词,但都很难定义。在这种情况下,我的根是我的联系人经理,我的父母是联系人,孩子是地址之类的吗?如果有人能帮我理解,那真的会很有帮助

以下是作业的摘录,如果它能帮助你更好地理解我的问题:

  • 创建扩展JFrame的ContactManagerFrame类。其构造函数将以ContactManager对象(从磁盘上保存的序列化文件中检索)作为参数

  • 创建并布局所需的图形组件。(提示:使用JPanel对过滤功能的组件进行分组,将JTree添加到JScrollPane,添加组件时使用BorderLayout)

  • 创建方法createNodes(),该方法将与树的根(即“Contacts”节点)对应的DefaultMutableTreeNode和与用户指定的筛选器对应的字符串作为参数。此方法应为联系人和每个联系人引用的对象创建节点,并将其组织在树结构中,如图1所示。应避免创建空的父节点(例如,如果联系人没有任何地址,则不应为此特定联系人添加父节点“地址”)。如果指定的筛选器为空字符串,则createNodes()将包括ContactManager对象中存储的所有联系人。在任何其他情况下,createNodes()将包括ContactManager中方法searchContacts()返回的联系人

  • 从根节点创建DefaultTreeModel对象。使用DefaultTreeModel初始化JTree组件


我不是要你们中的任何人帮我解决这个问题。我真的很想了解它。多谢各位

更复杂的摆动组件,例如,或与模型的概念一起工作。这意味着:组件正在显示的从属数据。它们的设计方式是将数据本身与其“可视化”表示(也称为视图)分开,并允许开发人员“或多或少”忘记数据表示。因此,如中所述,如果需要添加新的数据对象以显示在其中一个组件上,则只需将其添加到模型,并且视图将自动更新

说到这里,您将看到这些组件有一个以模型为参数的构造函数:

这些模型由接口定义,接口建立了任何具体实现都必须满足的基本契约

特别是在
JTree
的情况下,我们有接口和默认实现:。另外,任何
TreeModel
都必须与实现接口的节点对象一起工作

因此,要使用
JTree
,您需要一个
TreeModel
和一组通过父子关系关联的
TreeNodes
。例如这样的事情:

DefaultMutableTreeNode root = new DefaultMutableTreeNode("Contacts"); // root node

DefaultMutableTreeNode contact1 = new DefaultMutableTreeNode("Contact # 1"); // level 1 node
DefaultMutableTreeNode nickName1 = new DefaultMutableTreeNode("drocktapiff"); // level 2 (leaf) node
contact1.add(nickName1); 

DefaultMutableTreeNode contact2 = new DefaultMutableTreeNode("Contact # 2");
DefaultMutableTreeNode nickName2 = new DefaultMutableTreeNode("dic19");        
contact2.add(nickName2);

root.add(contact1);
root.add(contact2);

DefaultTreeModel model = new DefaultTreeModel(root);
JTree tree = new JTree(model);
图画

您需要请讲师解释作业的细节。不在这里发布。树结构可能如图1所示。查一查。这不一定是它的外观或任何我似乎无法理解的东西。这是树模型的整个概念,我似乎无法理解。这正是我一直在看的,我只是无法理解。。谢谢你,非常感谢你抽出时间来帮助大家,非常感谢。哇,这正是一个完美的解释,非常感谢你!如果你住在这附近,我会给你买瓶啤酒,你是个救命恩人。说真的,在过去的三个小时里,我一直在努力准确地掌握你用不到300字解释的内容。。真的谢谢你,完成了!我的程序还有很多问题要解决,但这将有助于上坡作战哈哈,谢谢你,伙计!哈哈,听到这个我很高兴!祝你好运,如果你陷入困境,请随时提出新问题@卓克塔皮夫