![](/img/trans.png)
[英]DefaultMutableTreeNode getUserObject only return String instead of user object
[英]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.