|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2009
Messaggi: 98
|
[JAVA] problema con funzione ricorsiva
Io ho questa funzione ricorsiva all'Interno di una classe che estende JFrame:
Codice:
private void process(File file) throws Exception { if(file.isFile()){ label.setText(file.getName()); } else if (file.isDirectory()) { File[] listOfFiles = file.listFiles(); if(listOfFiles!=null) { for (int i = 0; i < listOfFiles.length; i++) process(listOfFiles[i]); } } } |
![]() |
![]() |
![]() |
#2 | |
Bannato
Iscritto dal: May 2012
Messaggi: 7
|
Quote:
Io per qualcosa del genere tenderei ad evitare una soluzione ricorsiva, ma comunque c'è un'altra cosa che non capisco bene: se il codice non bloccasse la finestra come descrivi, la label credo conterrebbe solo il nome dell'ultimo dei file. E' proprio questo che vuoi ottenere? Se riesci a mettere insieme un programma cortissimo (una snippet), ma compilabile e che possa essere eseguito mostrando il problema, posso provare a capire cosa succede. |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Dec 2009
Messaggi: 98
|
Ormai ho risolto il problema... i problemi erano dovuti al fatto che il programma era in stato di elaborazione. per quel motivo quindi a video non veniva visualizzato il valore aggiornato della label e allo stesso tempo la finestra pareva bloccata. quindi per risolverli è stato necessario avviare un nuovo thread che avviasse la funzione ricorsiva
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: May 2012
Messaggi: 7
|
Perfetto, sono felice per te.
In effetti, scorrendo rapidamente il codice non avevo visto cose anomale (a parte quella di cui ti ho scritto), e sospettavo fosse un problema legato a qualcosa che si trovasse altrove. Per quello che avevo chiesto una snippet da compilare. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:28.