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

これは、ノードを使用するツリーのセマンティクスに完全に依存します。

たとえば、次のように簡単に文字列を含むノードを作成できます。

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

それがあなたにとって何らかの用途になるかどうかは、あなたがツリーをどのように使用しているかに依存します。

基本的に、より多くのコンテキストをお願いします。そうでなければ、この単純な「はい」の答えがあなたが得ようとしている最良のものです。:-p

于 2009-10-06T09:59:55.060 に答える
1

私が間違っている場合は訂正してください。ただし、選択したノードの表示テキストを新しい特定のテキストに変更したいようです。これが事実なら、私はこれが役立つかもしれないと思います。

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

StringオブジェクトをStringまたはObject以外の型、あるいはStringが実装するインターフェース(Serializable、CharSequence、Comparable)の1つにキャストすることはできません。オブジェクトをあるタイプにキャストするには、オブジェクトはこのタイプである必要があります。StringオブジェクトはString型であり、DefaultMutableTreeNode型ではありません。Stringクラスはfinalであるため、DefaultMutableTreeNodeを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 に答える