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);