ok.
se ho capito il ragionamento:
- clicco su un item menu:
-- attivo un button che serve per stoppare l'operazione
-- attivo la jprogressbar
-- lancio il file chooser per scegliere la directory
- scelta la directory:
-- nello SwingWorker lancio la scansione della directory, e riempio l'ArrayList
- quando il worker ha finito:
-- disattivo il button
-- disattivo la progress bar
-- riempio la jtable
(poi gestirò anche il button di stop).

se il filo logico è giusto, mi verrebbe da fare così:
codice:
                north.getBtnStop().setEnabled(true);
                bar.setIndeterminate(true);
                bar.setString("Loading...");
                FileChooserOpen fco = new FileChooserOpen();
                fco.showOpenDialog(null);
                File dir = fco.getDir();
                Scan utils = new Scan();
                SwingWorker worker = new SwingWorker<Void, Void>() {
                    @Override
                    protected Void doInBackground() {
                        try {
                            list = utils.scanDir(dir.toPath());
                            countFile = list.size();
                        } catch (IOException ex) {
                            JOptionPane.showMessageDialog(null, ex.getMessage());
                        }
                        return null;
                    }

                    @Override
                    protected void done() {
                        System.out.println("OK");
                    }
                };
                worker.execute();
                if (worker.isDone()) {
                    for (int i = 0; i < list.size(); i++) {
                        String n = list.get(i).getNome();
                        String t = list.get(i).getTipo();
                        String p = list.get(i).getPath();
                        Object[] row = {n, t, p};
                        model.addRow(row);
                    }
                    north.getLabelCount().setText("No. file " + countFile);
                    north.getBtnStop().setEnabled(false);
                    resizeColumnWidth();
                    bar.setIndeterminate(false);
                    bar.setString("");
                }
con il problema che l'OK viene stampato.
ma non entra mail nell'if worker.isDone().