Buongiorno a tutti,
Ho una JTable nella quale sono registrati degli eventi (presi opportunamente da un DB).
Alla fine, come ultima colonna, ho un mio bottone che se cliccato ha il compito di scaricare un documento da internet, scandirlo e caricare dei risultati nel DB, in un tempo apprezzabile (max 10-15 secondi, ma più la rete è lenta più cresce il tempo dell'operazione).
Fino a qualche tempo non avevo problemi in quanto era tutto nel thread principale dell'EDT
quindi al click del bottone stava tutto bloccato per il tempo necessario.
Adesso ho implementato uno SwingWorker con un JProgressBar che mi permette di tenere libero l'EDT, e quindi di far girare il mio Progressbar, e far vedere che l'applicazione è viva è che sta girando correttamente.
Visto che i tasti non devono essere cliccati in maniera contemporanea come faccio a dire di bloccare la colonna dei tasti?
Ho la mia classe TableModelFrame che estende DefaultTableModel e li si trova il mio metodo isCellEditable(int row, int column) dove viene data istruzione di quali colonne devono essere editabili e quali no.
Al momento in cui vengono fatte queste operazioni richieste sono su un'altra classe (ButtonEditor) che descrive il comportamento del bottone.
Come faccio a richiamare il metodo isCellEditable sul mio TableModelFrame e ridefinire il comportamento, dato che al momento della conclusione delle operazioni deve ritornare al comportamento precedente?
Grazie.
Ciao.
Allego la mia SwingWorkerClass dove dovrò editare il comportamento della colonna dei bottoni
codice:class SwingWorkerClass extends SwingWorker<Void, Void> { private ProgressPanel progressBar; private Risultato r; private ButtonEditor ed; private TableFrame aframe; public SwingWorkerClass(ProgressPanel aProgressBar, ButtonEditor ed, Risultato ris, TableFrame frame) { this.progressBar = aProgressBar; r=ris; this.ed=ed; aframe=frame; //editare comportamento colonna tasti tabella ?!?!? progressBar.setVisible(true); } @Override public Void doInBackground() { //long running task ed.modifyResult(r); return null; } @Override public void done() { //ridefinire vecchio comportamento colonna tasti tabella ?!?!? progressBar.setVisible(false); } }