0

是否可以将 String 变量转换为 DefaultMutableTreeNode 对象?请解释。语境:

String s = new String(outputTagName);
Object s2 = (Object) s;
DefaultMutableTreeNode selectedNode2 =(DefaultMutableTreeNode) s2;
DefaultMutableTreeNode parent2 =(DefaultMutableTreeNode) parent;
model.insertNodeInto(selectedNode2, parent2, parent2.getChildCount());

这是我写的代码。这在以 BreadthFirstSearch 方式遍历树的枚举中使用。2nf 行给了我这个错误:

java.lang.ClassCastException: java.lang.String cannot be cast to javax.swing.tree.DefaultMutableTreeNode at ....
4

4 回答 4

1

如果我错了,请纠正我,但您似乎想将所选节点的显示文本更改为一些新的给定文本。如果是这种情况,我认为这可能会有所帮助。

DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
node.setUserObject("New Node Text");
于 2011-09-29T01:34:55.007 回答
1

完全取决于您希望使用该节点的树的语义。

例如,您可以创建一个包含字符串的节点,如下所示:

String s = ...; // your string
new DefaultMutableTreeNode(s);

这对您是否有用取决于您如何使用树。

基本上,请提供更多上下文。否则,这个简单的“是”答案是您将得到的最好的答案。:-p

于 2009-10-06T09:59:55.060 回答
0

您不能将 String 对象转换为 String 或 Object 以外的任何类型,或者 String 实现的接口之一(Serializable、CharSequence、Comparable)。要将对象转换为某种类型,对象必须是这种类型。String 对象是 String 类型,而不是 DefaultMutableTreeNode 类型。您甚至不能使 DefaultMutableTreeNode 成为 String 的子类(在这种情况下可以进行强制转换),因为 String 类是最终的。

于 2009-10-06T10:21:10.603 回答
0

您在其他问题中提供的链接

你可以看到你可以做 new DefaultMutableTreeNode("Any String");

要更正您的代码示例,方法是:

String s = new String(outputTagName);

DefaultMutableTreeNode selectedNode2 = new DefaultMutableTreeNode(s2);
于 2009-10-06T11:41:44.310 回答