- - PR -
JTreeに関してなのですが
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-04 11:06
まだJavaを初めて間もなく、つまらない質問かと思いますが宜しくお願いします。
JTreeに関しての質問のですが、ツリーの項目を他のイベント(他のウィンドウでの)から呼び出してフォーカスをあてる、または選択した状態(外観だけ)にするのってどうしたらいいのでしょうか? | ||||
|
投稿日時: 2006-02-06 10:16
JTreeのノードを選択するには、
・行のインデックスを指定する setSelectionRow(int) ・パスを指定する setSelectionPath(TreePath) といった方法があります。 後者の場合、TreeNode に DefaultMutableTreeNode を使っているなら、 JTree tree = ...; // 対象のJTree DefaultMutableTreeNode node = ...; // 選択したいノード TreePath path = new TreePath(node.getPath()); tree.setSelectionPath(path); のような感じでできると思います。 | ||||
|
投稿日時: 2006-02-06 12:29
>てつさん
ありがとうございます!setSelectionPath(TreePath)を使うのは理解できていたんですがそこまでどうもっていくか悩んでました。もうちょっと自分で考えるようにします、すいません汗 | ||||
|
投稿日時: 2006-02-06 15:06
JTree tree = ...; // 対象のJTree
DefaultMutableTreeNode node = ...; // 選択したいノード TreePath path = new TreePath(node.getPath()); tree.setSelectionPath(path); でやってみたのですが、選択時のようなマークがされませんでした… なのでsetSelectionRow(int)でやっても無理でした。ツリーのウィンドウにパネルで項目の名前を表示させているのですが、それは表示できます。これはどういうことなんでしょうか? 現在のソースの状態です。argPが項目を選択した状態にしたいオブジェクトです。 DefaultMutableTreeNode pPath = new DefaultMutableTreeNode(argP); Object pathArray[] = pPath.getPath(); TreePath path = new TreePath(pathArray); tree.setSelectionPath(path); どうしたらよいでしょうか?アドバイスいて頂けたらと思います。 [ メッセージ編集済み 編集者: doo 編集日時 2006-02-06 15:25 ] [ メッセージ編集済み 編集者: doo 編集日時 2006-02-06 17:16 ] | ||||
|
投稿日時: 2006-02-06 18:19
> 現在のソースの状態です。argPが項目を選択した状態にしたいオブジェクトです。
> DefaultMutableTreeNode pPath = new DefaultMutableTreeNode(argP); pPath は実際に JTree に設定されている TreeModel のノードでなければ うまく行かないかと。。。 JTree で表示しているノードを new DefaultMutableTreeNode(argP); のように作っているなら、TreeModel が持つノードの中から ノードの userObject と argP が一致するものを探して使います。
| ||||
|
投稿日時: 2006-02-06 19:06
>てつさん
ご丁寧にありがとうございます。その方法で考えて見ます。 public Component getTreeCellRendererComponent(JTree tree, Object value,boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){ の呼び出しの際にrowの値をいったん保持する形を考えていました。これは少し強引ですよね… 内容も理解できて解決もしました!ありがとうございました! [ メッセージ編集済み 編集者: doo 編集日時 2006-02-07 10:33 ] |
1