Ciao a tutti,
come da titolo, non capisco perchè l'applicazione si blocca durante l'esecuzione del woker, dato che si tratta di scienza, c'è qualcosa che mi sfugge potreste aiutarmi?
Questo è l'output a video:
Attivazione Worker
Verifica Campi
Inizio Procedura Controllo i Campi
Delete Word Selezionato, Controllo se parola è singola: true
Controllo campi ok, Risultato: true
Questo parte di codice in ordine di esecuzione:
listener:
parte dello SwingWorker ( in neretto dove si blocca l'esecuzione)codice:private void startResize() { if (window.jcbRename.isSelected() || window.jcbDeleteString.isSelected() || window.jcbDeleteWord.isSelected()) { renameworker = new RenameWorker(window, v); renameworker.execute(); System.out.println("Attivazione Worker"); } }
metodo controllaCampicodice:@Override protected Vector<File> doInBackground() { System.out.println("Verifica Campi"); System.out.println(controllaCampi()); if (controllaCampi()== false) // si blocca qui nonostante il controlla campi è == true return v; int valore = Integer.parseInt(window.jtNum.getText()); String nome = window.jtNome.getText(); bm.avvioStart(); Vector<File> aux = new Vector<File>(); Enumeration<File>e = v.elements(); String nameFile =""; int count = 0; System.out.println("Inizio Cicli"); .... .... }
ecco il tutto, accade quando le jcheckbox jcbDeleteString e jcbDeleteWord sono selezionate, con quella jcbRename nocodice:private boolean controllaCampi() { System.out.println("Inizio Procedura Controllo i Campi"); if (window.jcbRename.isSelected()) { System.out.println("Rename Selezionato, Controllo numero inserito"); if (!fs.controllaNum(window.jtNum.getText())) return false; else if (window.jtNome.getText().equals("")) { System.out.println("Rename Selezionato, Controllo nome se inserito"); JOptionPane.showMessageDialog(null,"Please insert new File(s) Name!", "Error Message", JOptionPane.ERROR_MESSAGE); return false; } } else if (window.jcbDeleteWord.isSelected()) { System.out.print("Delete Word Selezionato, Controllo se parola è singola: "); System.out.println(fs.isSingleWord(window.jtString.getText())); if (!(fs.isSingleWord(window.jtString.getText()))) return false; } System.out.print("Controllo campi ok, Risultato: "); return true; }
Grazie per l'attenzione ed eventuale 'aiuto.
p.s. si blocca anche se levo il metodo controlloCampi

Rispondi quotando