Pobieranie nazwy folderu

Pobieranie nazwy folderu
CO
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0

Witam,
dla ułatwienia pracy użytkownikowi potrzebuję mieć możliwość wybrania nazwy folderu na takiej zasadzie jak się wybiera nazwę pliku obiektem JFileChooser. Niestety nie mogę znaleźć odpowiedniego komponentu lub opcji do JFileChooser która pozwoli na wyświetlanie tylko folderów a nie plików.
Będę wdzięczny za pomoc.

0
Kopiuj
/* Klasa pochodna klasy JFileChooser - pozwala wybierać TYLKO katalogi
 */
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;

public class JDirectoryChooser extends JFileChooser
{
    public JDirectoryChooser()
    {
        super();
        setup();
    }
    //--------------
    public JDirectoryChooser(File directory)
    {
        super(directory);
        setup();
    }
    //--------------
    public JDirectoryChooser(String directoryPath)
    {
        super(directoryPath);
        setup();
    }
    //--------------
    private void setup()
    {
        setDialogTitle("Wybierz katalog");
        setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        FileFilter filtr=new OnlyDirectory();
        setFileFilter(filtr);
    }
}

//----------------------------

class OnlyDirectory extends FileFilter
{
    public boolean accept(File f)
    {
        return f.isDirectory();
    }
    //--------------
    public String getDescription()
    {
        return "Katalogi";
    }
}
CO
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0

Dzięki. Wszystko działa :)

0

Po wklejeniu kodu zobaczyłem, że metoda setup() ma nadmiar instrukcji. Mogłaby wyglądać tak:

Kopiuj
    private void setup()
    {
        setDialogTitle("Wybierz katalog");
        FileFilter filtr=new OnlyDirectory();
        setFileFilter(filtr);
    }

lub tak:

Kopiuj
    private void setup()
    {
        setDialogTitle("Wybierz katalog");
        setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    }

Drugie rozwiązanie nie wymaga klasy filtrującej OnlyDirectory, ale brak filtru ma wadę. W polu tekstowym Files of type: pojawi się nieprawdziwy napis All files.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.