- - PR -
JTreeを使ったダイアログ
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-29 16:45
英語は読めなくてもソースコードは読めますよね? 多少なりとも自分で努力した形跡を示さないと誰も相手してくれなくなりますよ。老婆心ですが。 あと、「ご教示」ね。 | ||||
|
投稿日時: 2006-09-29 16:57
mogeさん忠告ありがとうございます。
想馬さん失礼しました。 | ||||
|
投稿日時: 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-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-10-05 17:34
たびたび申し訳ありません、JTreeからgetSelectionPath()を使ってTreePathの取得に成功したのですが、(node,子供,孫)のように","で区切られて出てきます。
それをファイル形式(node\子供\孫)のようにするにはどうすればいいのでしょうか? ご教示いただけますでしょうか。 | ||||
|
投稿日時: 2006-10-05 17:49
TreePath#toString()でいけるんじゃない?
システムに依存するのがいやなら、StringBufferでも使って、自分で接続しましょう。 その場合、セパレータはFileクラスの、クラスメンバ変数を利用するのをお勧めします。 [ メッセージ編集済み 編集者: Edosson 編集日時 2006-10-05 17:50 ] |