Eksplorator plików

0

Witam.
Od dłuższego czasu siedzę nad projektem eksploratora plików , jednak nic mi z tego nie wychodzi .
Nie chodzi mi tutaj o FileDialog lub FileChooser , tylko o wyświetlanie tego eksploratora w jednym okienku (coś jak w windowsie / lunuxie)
Poszukałem że do budowy logicznej drzewa można wykorzystać JTree, jednak mam problem z przypisywaniem konkretnych wartości do gałęzi oraz zapamiętywaniem ścieżki do danego katalogu/pliku.

Ktoś z was może zetknął się z podobnym problemem, czy być może korzystaliście z innych rozwiązań?
Z góry dziękuję za odpowiedź ! :)

0

Temat zamknięty , udało mi się rozwiązać problem .

0

Jest to fragment kodu z mojego projektu odpowiedzialny za wyświetlanie listy plików i katalogów za pomocą drzewa plików,od czasu do czasu aplikacja wysypuje się wyświetlając dwa razy tą samą zawartość katalogu, nie wiem dla czego. Kod ten jest częścią przyszłej aplikacji która ma być bardziej zaawansowanym eksploratorem plików niż ten windowsowy(przynajmniej takie są założenia :P). Być może da radę to napisać w łatwiejszy sposób, ale na razie mi to nie wychodzi. Kod przepisywałem z palca więc mogło się zdarzyć że nie przepisałem deklaracji jakieś zmiennej bądź zrobiłem gdzieś literówkę.

import javax.swing.;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.filechooser.FileSystemView;
import java.awt.
;
import java.io.*;


public class Projekt extends JFrame{
private JPanel okno;
private JTree tree;
private DefaultMutableTreeNode root;
private DefaultMutableTreeNode node;
private DefaultMutableTreeNode node1;
private JScrollPane panel;
private FileSystemView fileSystemView;
private File pliczek;

Public Projekt()
{
	okno=new JPanel();
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setContentPane(okno);
	fileSystemView = FileSystemView.getFileSystemView();
	korzen();
	galezie();
}
private void korzen()
{
	JPanel okno1=new JPanel;
	File desk=fileSystemView.getHomeDirectory();
	File[] root=fileSystemView.getFiles(desk,true);
	for(File s:roots)
		{
		if(s.isDirectory())
			{
				node=new DefaultMutableTreeNode(s);
				root.add(node);
			}
		}
	tree=new JTree(root);
	okno1.add(tree);
	panel.getViewport().add(okno1);
	okno.add(panel);
}

galezie()
{
	tree.addTreeSelectionListener(new TreeSelectionListener() {
	@Override
			public void valueChanged(TreeSelectionEvent arg0) {
				node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
				Object value=node.getUserObject();
				pliczek=(File)value;
				System.out.println(pliczek);
				File[] plik=fileSystemView.getFiles(pliczek, true);
				
				if(pliczek.isDirectory())
				{
					for(File s:plik)
					{
						if(node!=null)
						{
						node1=new DefaultMutableTreeNode(s);
						node.add(node1);
						}
					}
				}


});

public static void main(String[] args)
{
	Projekt p=new Projekt();
	p.setVisible(true);
}
}
	


1 użytkowników online, w tym zalogowanych: 0, gości: 1