0

私はオブジェクトから構築JTreeされたものを表示しています。ツリーは、ローカル ファイル システムを表示することを目的としています。データはリクエストに応じてロードする必要があるため、ユーザーがデータを展開したい場合に使用します。これはうまく機能しますが、ノードに子アイテムがない限り、ファイル アイコンが表示され、子アイテムが挿入されるとフォルダー アイコンに変わります。JContentPaneDefaultMutableTreeNode

(まだ) 子項目がありませんが、ノードに常にフォルダー アイコンを表示するにはどうすればよいですか?

4

3 に答える 3

2

ツリーにセル レンダラーを実装する必要があります。したがって、ノードのアイコンを定義できます。 テーブルのサンプルはこちらを参照してください(ツリーにもメソッドがありますsetCellRenderer

于 2013-01-23T15:40:57.073 に答える
1

DefaultMutableTreeNode (または TreeNode のカスタム実装) を使用して、ファイル空のフォルダーを区別する手段は、その allowChildren プロパティです。

// get a list of files
File[] files = new File(".").listFiles();
// configure the nodes' allowsChildren as the isDir of the File object
for (File file : files) {
    root.add(new DefaultMutableTreeNode(file, file.isDirectory()));
}          
// configure the TreeModel to use nodes' allowsChildren property to
// decide on its leaf-ness
DefaultTreeModel model = new DefaultTreeModel(root, true);
于 2013-01-24T15:03:59.127 に答える
1

私はこれを使用します:

DefaultMutableTreeNode root = new DefaultMutableTreeNode ();
DefaultTreeModel treeModel = new DefaultTreeModel (root);
tree = new JTree (treeModel);
addFiles (root);                            // build the catalog tree recursively
treeModel.setAsksAllowsChildren (true);     // allows empty nodes to appear as folders

if (file.isDirectory ())
  newNode.setAllowsChildren (true);

addFiles() ルーチンで。ツリーが構築された後に setAsksallowChildren(true) が来る必要があります。

于 2013-02-19T01:32:46.850 に答える