jtree,有没有办法将树选择的路径转换为字符串并返回?

时间:2011-12-23 09:31:00

标签: java swing netbeans path jtree

我有这个Jtree,我必须在我的tbltables表中插入“tables”。 (我的意思是我在我的MSQL数据库中有一个名为tbltables的表,其中有一个表列表。)

因此,这些表也可以包含表格。所以现在问题是:我不知道如何告诉它一个表应该在另一个表中。我唯一能想到的是,当我将表添加到我的Jtree时(我可以这样做,但不能保存它们对我的数据库的看法),然后我可以保存所选索引,或添加节点的目标。喜欢[“Groceries”,“fruit”]然后当我从我的数据库中调用它时,我可以像这样添加它。

那么我需要将路径转换为字符串,反之亦然。我做错了吗?有更好的方法吗?

注意:我不使用物理文件和文件夹,我正在使用我想要的数据库中的“虚构文件”。

1 个答案:

答案 0 :(得分:2)

我想说你的表应该有主键(让我们把它命名为table_id)和一个引用主键的外键parent_table_id。父ID可以为null(例如,对于root)。

您可以使用id,parent id和name字段定义类MyTableNode。根据MyTableNode层次结构构建TreeModel。 DefaultMutableTreeNode可以保留任何用户对象。

然后您可以为JTree定义自己的渲染器以显示用户对象的名称文本(MyTableNodes)或尝试覆盖用于在默认渲染器中显示值的对象的toString()方法。

你的方式(将路径存储为字符串)也可以工作。将节点的TreePath重新显示为“root / first child /.../ leaf”。所以每个表(JTree的行)都有自己的路径。 然后,恢复树节点意味着解析String []的路径,并从树根导航,从阵列中找到具有下一个名称的适当子节点。