我有这个Jtree,我必须在我的tables表中插入"tables"。(我的意思是,我有一个表在我的MSQL数据库称为tabletables,并在其中有一个表的列表)。
这些表中也可以有表。现在的问题是,我不知道如何告诉它一个表应该在另一个表中。我唯一能想到的是,当我将表添加到我的Jtree中时(我可以这样做,但是不保存它们在我的db中的样子),我可以保存所选的索引,或者添加的节点的目的地。例如[" grocery ","fruit"],然后当我从数据库中调用它时,我可以像这样添加它。
那么我需要将路径转换为字符串,反之亦然。我做错了吗?有更好的方法吗?
注意:我不是在处理物理文件和文件夹,我正在处理数据库中的"假想文件",我有它们的目的地。
我会说你的表应该有主键(让我们命名为table_id)和一个外键parent_table_id引用主键。父id可以为空(例如,对于root)。
你可以定义类MyTableNode与id,父id和名称字段。基于MyTableNode层次结构构建TreeModel。DefaultMutableTreeNode可以保留任何user对象。
然后你可以为JTree定义自己的渲染器来显示用户对象(MyTableNodes)的名称文本,或者尝试覆盖对象的toString()方法,该方法用于在默认渲染器中显示值。
您的方式(将路径存储为字符串)也可以工作。将节点的TreePath表示为"根/第一个子/…/叶子"。所以每个表(JTree的行)都有自己的路径。然后恢复树节点意味着将路径解析为String[],并从树的根导航,从数组中找到具有下一个名称的合适子节点