Newsgroup: it.comp.java
Titolo: Dubbio concettuale sull'utilizzo delle GUI

Salve a tutti.
E' diverso tempo che realizzo applicazioni con interfacce grafiche swing.
Mi è venuto un grandissimo dubbio a livello concettuale a seguito di una
manutenzione che ho dovuto effettuare su un programma..
mi spiego meglio.. fin'ora quando dovevo realizzare un'applicazione con una
GUI a seguito di un evento effettuavo determinate operazioni, tali
operazioni erano definite nel main della GUI.
la manutenzione che ho fatto ad un programma consisteva "nell'aggiunta" di
una GUi al posto di un comunissimo readLine() da txt .
Visto che avevo pochissimo tempo a disposizione ho risolto il problema in un
modo che definisco pessimo per lo spreco di risorse cioè
nel programma esistente ho scritto :
Gui gui = new Gui();
while(gui.isInAttesa()) { }
..
.. //
int i = gui.getIlValoreDiInteresse();
// chiudo la GUI()
etc..
.
nella Gui ho definito una variabile booleana che a seguito di un evento
veniva posta a false questo mi permetteva (isInAttesa=false;)
lo so da me che questa soluzione non và bene , ma cosa avreste fatto voi ? e
come ?
continuo con il dubbio che mi è venuto....
Utilizzando un pò di astrazione la GUI deve essere solamente un qualcosa che
fa da tramite tra l'applicazione e l'utente ...
vi sembra corretto inserire il main di tutta l'applicaione in una GUI ?
non sò se sono riuscito a spiegarmi ....
voglio dire che il programma principale è una cosa e la GUI deve essere un
qualcosa che deve rendere servizio al programma principale .
grazie a tutti
saluti rob
rimango in attesa

 veniva posta a false questo mi permetteva (isInAttesa=false;)
[CUT]
Non riesco a capirci molto: quale evento ti faceva uscire dal ciclo infinito
di attesa ? La presenza di dati in un flusso che prima leggevi con
readLine() ?
Scorpio.

 readLine() ?
il semplice invio di un JButton.
Prova ad immaginare una JFrame in cui ad inserire per esempio il nome
non sņ se sono stato chiaro .....
saluti e grazie rob

 rimango in attesa
Se si tratta di creare un tool semplice (più simile ad uno script che ad una
applicazione) può andare anche bene. Se invece hai bisogno di andare oltre
alla GUI offerta da JOptionPane, devi necessariamente estendere JFrame, e
quindi il solo main() non basta più. É qui che entra in gioco la separazione
tra interfaccia (verso l'utente) e funzionalità... ma fai sempre attenzione
a non complicarti inutilmente la vita. Guarda sempre la complessità delle
reazioni da associare alle azioni dell'utente, e decidi te se è meglio
delegare l'esecuzione ad una classe esterna (o perfino ad un thread
parallelo), oppure eseguire tutto "in loco".
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
(per rispondere personalmente leva IlDitoDalCulo)

 parallelo), oppure eseguire tutto "in loco".
quello che non ho chiaro è come realizzare un software di qualità ....
mi spiego
se ho un programma che ad un certo punto richiede un'interazione con un
utente , come è meglio realizzarla ?
1- dal programma principale richiamo una classe che si preoccupa di gestire
l'interfaccia grafica ?
     se sì in linea di massima qual'è la linea guida da seguire...
cioè come faccio ad arrestare la continuazione del programma per rimanere in
attesa della risposta dell'utente senza spreco di risorse ..
2- continuo a sviluppare come ho fatto fin'ora cioè il mio main è
nell'interfaccia grafica e a seconda degli eventi ne creo e/o visualizzo
delle altre
speriamo che sono riuscito a spiegarmi un pò meglio ...
saluti rob
P.S. volevo dirti che mi è piaciuto ... sono stato a ridere mezzo'ora
 /*
Vediamo se riesci a leggere il labiale:
D - O - C - U - M - E - N - T - A - Z - I - O - N - E
ma percaso la prossima volta farai anche D - E - N - T - A - L - E  (vedi
pubblicità ferrero)
*/

 saluti e grazie rob

 */
più misticooooo..... dentale... labiale.... :P


G - R - A - Z - I - E      1 - 0 - 0 - 0
saluti rob