a rieccomi.
mi sono letto vari esempi online e fatto un pò di cambiamenti.
questo funziona, ma vorrei capire se va anche bene:
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<MyTableModel, Object[]>() {
@Override
protected MyTableModel doInBackground() throws InterruptedException {
try {
List<Record> list = utils.scanDir(dir.toPath());
countFile = list.size();
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};
Thread.sleep(200);
publish(row);
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
return model;
}
@Override
protected void process(List<Object[]> list) {
for (Object[] row : list) {
model.addRow(row);
}
}
@Override
public void done() {
north.getLabelCount().setText("No. file " + countFile);
north.getBtnStop().setEnabled(false);
resizeColumnWidth(); // --> FA IL RESIZE DELLA LARGHEZZA DELLE COLONNE, NULLA DI PIÙ
bar.setIndeterminate(false);
bar.setString("");
}
};
worker.execute();
può andare??