- PR -

JTreeを使ったダイアログ

投稿者投稿内容
K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2006-09-29 16:45
引用:

解説していただけるとありがたいのですが…。


英語は読めなくてもソースコードは読めますよね?
多少なりとも自分で努力した形跡を示さないと誰も相手してくれなくなりますよ。老婆心ですが。
あと、「ご教示」ね。
ゆっき
会議室デビュー日: 2006/09/29
投稿数: 10
投稿日時: 2006-09-29 16:57
mogeさん忠告ありがとうございます。
想馬さん失礼しました。
想馬
大ベテラン
会議室デビュー日: 2003/05/29
投稿数: 245
お住まい・勤務地: 神奈川・東京
投稿日時: 2006-09-29 17:03
http://translate.google.com/translate?hl=ja&sl=en&u=http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&sa=X&oi=translate&resnum=1&ct=result&prev=/search%3Fq%3DHow%2BTo%2BUse%2BJTree%26hl%3Dja%26hs%3DNXX%26lr%3D%26client%3Dopera%26rls%3Dja

翻訳って素晴らしい、ちょっと日本語変だけど・・・

# 「教授」とは教え授けること 教授する
# 「教示」とは教え示すこと 教示を賜る

[ メッセージ編集済み 編集者: 想馬 編集日時 2006-09-29 17:13 ]
ゆっき
会議室デビュー日: 2006/09/29
投稿数: 10
投稿日時: 2006-10-03 14:08
public JTree jTree() {

DefaultMutableTreeNode nRoot = new DefaultMutableTreeNode
(new File( "." ).getAbsoluteFile().getParentFile()) ;

File root = new File( "." ) ;
File[] fileList = root.listFiles() ;

for (int i = 0; i < fileList.length; i++) {

DefaultMutableTreeNode node = new DefaultMutableTreeNode( fileList[i].getName() ) ;

nRoot.add( node );

if( fileList[i].isDirectory() )
{
addChildFileNode( node, fileList[i] ) ;
}
}

JTree tree = new JTree(nRoot) ;
tree.setRootVisible(true) ;

return tree ;
}

/**
* 下位ファイルJTreeを追加する
*
* @param node 親ノード (追加先)
* @param parent 親ファイル
*/
private void addChildFileNode( DefaultMutableTreeNode node, File parent ){

// 子ファイルリスト取得・処理
File[] childs = parent.listFiles() ;
for( int j = 0 ; j < childs.length ; j++ ){

// 子ファイルノード生成・追加
DefaultMutableTreeNode cnode = new DefaultMutableTreeNode( childs[j].getName() ) ;
node.add( cnode ) ;

// ディレクトリ判定
if( childs[j].isDirectory() ){

// 再帰呼出:子(孫)追加
addChildFileNode( cnode, childs[j] ) ;
}
}
}
苦戦しながらこれで出来ました。
ありがとうございました。
ゆっき
会議室デビュー日: 2006/09/29
投稿数: 10
投稿日時: 2006-10-05 17:34
たびたび申し訳ありません、JTreeからgetSelectionPath()を使ってTreePathの取得に成功したのですが、(node,子供,孫)のように","で区切られて出てきます。
それをファイル形式(node\子供\孫)のようにするにはどうすればいいのでしょうか?
ご教示いただけますでしょうか。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-10-05 17:49
TreePath#toString()でいけるんじゃない?

システムに依存するのがいやなら、StringBufferでも使って、自分で接続しましょう。
その場合、セパレータはFileクラスの、クラスメンバ変数を利用するのをお勧めします。

[ メッセージ編集済み 編集者: Edosson 編集日時 2006-10-05 17:50 ]

スキルアップ/キャリアアップ(JOB@IT)