0
학교 프로젝트를 작성하는 중이고 해결할 수없는 한 가지 문제가 있습니다. 디렉토리와 파일 경로를 보여주는 트리가 있지만 .mp3 및 .wav 파일 만 표시해야합니다. 누군가가 저에게 어떻게 조언 할 수 있습니까? 위처럼, 아이들을 나열하는 곳마다JTree - 고정 된 파일 확장명을 가진 파일 시스템 뷰어 트리
public boolean isLeaf(Object node) {
File file = (File) node;
return file.isFile();
}
public int getIndexOfChild(Object parent, Object child) {
File directory = (File) parent;
File file = (File) child;
String[] children = directory.list();
for (int i = 0; i < children.length; i++) {
if (file.getName().equals(children[i])) {
return i;
}
}
return -1;
}
public void valueForPathChanged(TreePath path, Object value) {
File oldFile = (File) path.getLastPathComponent();
String fileParentPath = oldFile.getParent();
String newFileName = (String) value;
File targetFile = new File(fileParentPath, newFileName);
oldFile.renameTo(targetFile);
File parent = new File(fileParentPath);
int[] changedChildrenIndices = { getIndexOfChild(parent, targetFile) };
Object[] changedChildren = { targetFile };
fireTreeNodesChanged(path.getParentPath(), changedChildrenIndices, changedChildren);
}
private void fireTreeNodesChanged(TreePath parentPath, int[] indices, Object[] children) {
TreeModelEvent event = new TreeModelEvent(this, parentPath, indices, children);
Iterator iterator = listeners.iterator();
TreeModelListener listener = null;
while (iterator.hasNext()) {
listener = (TreeModelListener) iterator.next();
listener.treeNodesChanged(event);
}
}
public void addTreeModelListener(TreeModelListener listener) {
listeners.add(listener);
}
public void removeTreeModelListener(TreeModelListener listener) {
listeners.remove(listener);
}
private class TreeFile extends File {
public TreeFile(File parent, String child) {
super(parent, child);
}
public String toString() {
return getName();
}
}
String getFileDetails(File file) {
if (file == null)
return "";
StringBuffer buffer = new StringBuffer();
buffer.append("Name: " + file.getName() + "\n");
buffer.append("Path: " + file.getPath() + "\n");
buffer.append("Size: " + (double) (file.length()/1024)/1024 + " MB" + "\n");
return buffer.toString();
}
대단히 감사합니다! – Farys