Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Java - JFileChooser - Problem with multiSelection

Dobrý den,

S JFileChooser jsem nikdy neměl problém. Vždycky jsem však vybíral pouze jeden soubor.

Ovšem teď jsem nastavil.

FILE_CHOOSER.setMultiSelectionEnabled(true);

Jenže jde sice vybrat více souborů, ale bez ohledu na to, jestli zmáčknu enter nebo tlačítko OK, tak metoda

FILE_CHOOSER.getSelectedFiles()

vrací null.

Napsal jsem cyklus for each, ale netbeans mně doporučilo metodu asList

list_files.addAll(java.util.Arrays.asList(FILE_CHO OSER.getSelectedFiles())); - list_files je ArrayList datového typu File

Nevím, jestli je zrovna v tomhle kódu problém. Logicky by to mělo fungovat, ovšem getSelectedFiles() vrací null.

Prosím o radu.

Předem děkuji.

Předmět Autor Datum
Nevím, jestli je zrovna v tomhle kódu problém. Logicky by to mělo fungovat, ovšem getSelectedFiles()…
MaSo 09.08.2017 15:25
MaSo
getSelectedFiles() funguje správně, akorát jsem to špatně pochopil a problém byl ve skutečnosti v li… poslední
MichalDM 10.08.2017 21:47
MichalDM

Nevím, jestli je zrovna v tomhle kódu problém. Logicky by to mělo fungovat, ovšem getSelectedFiles() vrací null.

Tak je to asi rozbity, bez celeho kodu se nepohnem...

Tohle jede normalne...

import java.io.File;
import java.util.Arrays;

import javax.swing.JFileChooser;

public class Main {
    public static void main(String[] argv) {
        JFileChooser chooser = new JFileChooser();
        chooser.setMultiSelectionEnabled(true);
        chooser.showOpenDialog(null);

        File[] files = chooser.getSelectedFiles();

        System.out.println(Arrays.toString(files));
    }
}

getSelectedFiles() funguje správně, akorát jsem to špatně pochopil a problém byl ve skutečnosti v list_files, protože jsem ho přepsal z klasického pole na ArrayList, ale zapomněl jsem ho inicializovat. Takže sorry, že jsem otravoval.

PS. Jen jsem chtěl dodat, že getSelectedFiles() vrací soubory v obráceném pořadí, takže je potom nutné pole obrátit.

java.util.Collections.reverse(list_files);

Zpět do poradny Odpovědět na původní otázku Nahoru