PDA

View Full Version : [JAVA] un dubbio con JProgressBar


Andale
12-04-2007, 08:53
Salve ragazzi, questa è il mio dubbio:

Sto realizzando un programma che permetta di accedere a un database, estrapolarne il contenuto e creare dei file, la suddivisione in classi è la seguente:

- Interfaccia Grafica
- Classe di accesso al Database
- Classe che crea i file

Durante la fase di creazione dei file, vorrei mostrare nell'interfaccia, una JProgressBar per indicare all'utente lo stato di avanzamento del programma, (ho pensato di impostare il min della JProgressBar a zero e il max al numero totale dei file da creare... ogni volta che un file viene creato, incremento la barra progresso)....

Ora il mio dubbio è questo :confused: :confused: è la classe Interfaccia Grafica che deve avere il comando e quindi visualizzare la JProgressBar, o devo gestire tutto all'interno della classe che crea i file?

Maephisto
12-04-2007, 10:37
Secondo me, essendo la JProgressBar una classe prettamente destinata alle interfacce grafiche, essa deve essere inserita nell'ambito delle classi per la tua interfaccia grafica. Chiaramente dovrai inserire all'interno della classe che crea i file una parte di codice che ti informi sullo stato di tale classe: ad esempio un contatore magari collegato ad un certo evento.

Cerco di spiegarmi con un esempio:

La classe che crea i file dispone di un contatore
private int file_counter = 0;
Ogni volta che un file viene creato, il contatore è incrementato di 1 e viene lanciato un evento che segnala (asincronamente, come qualsiasi evento) alla progress bar di aumentare di 1 la sua lunghezza: la progress bar cattura l'evento e mostra a video quanto richiesto.

L'idea essenziale (di tutta la programmazione in genere) è quella di dividere fortemente la Visualizzazione dal Controllo (ci sarebbe pure il Modello): insomma, non devi mischiare istruzioni "grafiche" con il codice operativo e viceversa. Quello che ho provato a descriverti in due righe è noto come Pattern MVC ed è uno dei migliori modi per approcciarsi alla questione relativa ai pattern e alla buona programmazione: fossi in te spenderei mezza giornata a leggermi un paio di tutorial su MVC in modo da capire ancora meglio di cosa si sta parlando.