Pobieranie nazwy folderu

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
/* 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";
    }
}
0

Dzięki. Wszystko działa :)

0

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

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

lub tak:

    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.

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