繁体   English   中英

字符串变量到DefaultMutableTreeNode对象?

[英]String variable to a DefaultMutableTreeNode object?

是否可以将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 ....

完全取决于您希望将节点与之一起使用的树的语义。

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

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

这对您是否有用,取决于您使用树的方式。

基本上, 请提供更多背景信息 否则,这个简单的“是”答案是您将获得的最好的答案。 :-P

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

DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
node.setUserObject("New Node Text");

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

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

您会看到可以执行新的DefaultMutableTreeNode(“ Any String”);

要更正您的代码示例,请执行以下操作:

String s = new String(outputTagName);

DefaultMutableTreeNode selectedNode2 = new DefaultMutableTreeNode(s2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM