2013-11-18 3 views
0

Я хочу, чтобы JFileChoser выбирал несколько файлов и получал список выбранных файлов в том порядке, в котором они были выбраны. Возможно ли это?JFileChoser для выбора нескольких файлов в порядке их выбора

+0

Что вы пытались? –

+0

Первая часть, да, вторая часть, не так много – MadProgrammer

ответ

2

Да технически это возможно с помощью java.beans.PropertyChangeListener.

final JFileChooser diag = new JFileChooser(); 
diag.setMultiSelectionEnabled(true); 

final List<File> chosen = new ArrayList<File>(); 

diag.addPropertyChangeListener(
        JFileChooser.SELECTED_FILES_CHANGED_PROPERTY, 
        new PropertyChangeListener() { 
    @Override 
    public void propertyChange(PropertyChangeEvent e) { 

     List<File> selected = Arrays.asList(diag.getSelectedFiles()); 
     Iterator<File> it = chosen.iterator(); 

     while (it.hasNext()) 
      if (!selected.contains(it.next())) 
       it.remove(); 

     for (File file : selected) 
      if (!chosen.contains(file)) 
       chosen.add(file); 
    } 
}); 

if (diag.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
    // 'chosen' holds selected files in order of selection 

Не элегантный, и я не знаю, насколько это стабильно.

+0

да, это сработало, спасибо @ Radiodef – Rashed

Смежные вопросы