1
私は、FTPサーバーのすべてのファイルとフォルダをJTreeに表示するように取り組んでいます。しかし、空のフォルダがファイルとして表示されるという問題があります。しかし、それらをフォルダアイコンとして表示するにはどうすればよいですか?JTreeで空のフォルダのアイコンを変更するには? (FTPファイル)
public void buildTree(){
try {
ftpClient.connect("130.229.178.31");
ftpClient.login("admin", "123456");
root = new DefaultMutableTreeNode("Welcome!");
for (int i = 0; i < 1; i++) {
DefaultMutableTreeNode temp = new DefaultMutableTreeNode("FTP-Server");
root.add(temp);
bind(temp,"");
}
} catch (IOException e1) {
e1.printStackTrace();
throw new RuntimeException("Client Error", e1);
}
try {
ftpClient.disconnect();
} catch (IOException e2) {
e2.printStackTrace();
throw new RuntimeException("Error when shutdown", e2);
}
}
// bind nod/subnode to the tree (recursive method)
public void bind(DefaultMutableTreeNode node,String path){
try {
Boolean defaultPath = true;
while (defaultPath)
{
defaultPath = ftpClient.changeToParentDirectory();
}
ftpClient.changeWorkingDirectory(path);
FTPFile[] files = ftpClient.listFiles();
for(int i=0;files!=null && i<files.length;i++){
FTPFile tempFile = files[i];
if(tempFile.isDirectory()){
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(tempFile.getName());
node.add(tempNode);
bind(tempNode, path+"/"+tempFile.getName());
}else{
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(tempFile.getName());
node.add(tempNode);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
"悲しい" フォルダが空のフォルダですが、ファイルのアイコンとして表示:
は、ここに私のコードです。それを変更するには?私たちはFTPファイルにないファイルで作業しているための方法と同じ が
FileSystemView fileSystemView = FileSystemView.getFileSystemView();
setIcont(fileSystemView.getSystemIcon(File file));
のように、機能していません。
はあなたに非常に多くの
PSありがとうございました。あなた自身のDefaultTreeCellRenderer
Iを使用します( "[空]" 多分それを呼び出す)
- は、空のフォルダに "ダミーファイル" を追加するか、
- :
-1 – Kai