我有一个JTree,我填补了一个游戏数据库程序的技能,我正在编写。
有几个类别,和子类别(实际技能),然后级别技能低于该水平(有时)。目前,我正在用一个技能类、内部的一些选项和一些枚举进行仿真,并使用一种方法来检查该技能是否是一个类别(称为isCategory)。还有两件事要注意:
我看到了一个非常好的示例,它通过单元呈现器将ComboBox附加到树中的每个节点。这是我找到的示例。
我理解上面的代码,但我看不出如何将组合框附加到节点,而不是树上?我读过“如何使用树木”,运行过,并查看了一些树演示的代码。我可以做一些基本的树,但是我觉得这些教程有点迟钝,并且缺乏足够的细节来为我自己弄清楚如何继续下去。我发现了另一个只将叶节点呈现为复选框的示例,这要复杂得多。
显然,我想把两者结合起来,能够有不同的类别,能够有不同的技能,不同的技能有不同的熟练程度。不过,我能想到的唯一方法是为不同的类型拥有不同的JComboBoxModels,但我不知道如何做到这一点,也不知道如何做到这一点。我尝试过编辑复选框示例以使用ComboBoxes,但对于我的一生,我无法理解它。
有人能给我一个提示吗?因为我刚接触Java,还在努力找出该做什么,能给我一个提示吗?
发布于 2012-08-03 19:33:28
发布于 2012-08-03 11:25:42
您应该实现TreeCellRenderer和TreeCellEditor。两者都应该以不同的模型返回JComboBox。您应该根据值参数(实际上是树节点)在getTreeCellEditorComponent/getTreeCellRenderingComponent中决定选择哪种模型。
https://stackoverflow.com/questions/11794376
复制相似问题