harpefalcata [url=http://forum.ubuntu-it.org/viewtopic.php?p=4975223#p4975223][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Il codice che hai postato non serve a molto, è solo la parte che si occuperebbe difare le operazioni matematiche, qualora avesse disponibili i dati corretti.
Si vede però da quel codice, che tu usi le wrapper per fare le operazioni sui dati immessi, e questo è un primo errore, infatti i dati immessi attraverso una semplice JTextBox, sono considerati, se non sbaglio come semplici Stringhe, d'altronde è quello che dice anche il suo nome, quindi prima di ogni cosa sarebbe bene che fai un controllo e validi i dati inseriti dall'utente, per assicurarti, ad esempio che l'utente non inserisca caratteri alfabetici, ed in questo caso fai comparire un pop-up, oppure intervieni da codice in maniera "violenta" ed elimini ogni carattere inserito erroneamente, in modo da essere certo di passare alle funzioni matematiche sottostanti solo veri caratteri numerici.
Nello stesso validatore, devi poi assicurarti che venga rispettata la "naming convention" di Java, in particolare assicurati che i numeri decimali vengano inseriti usando il carattere "punto" e non "virgola" (o viceversa, ora non mi ricorda quale dei due Javacnsidera come separatore decimale), e quindi tramite una regex sostituisci il carattere separatore con quello opportuno, ti consiglio di cercare a questo scopo i metodi di manipolazione delle stringhe come split, replace, concat... .
Detto questo, arriviamo alla parte più importante, sembra che tu abbia disegnato la tua interfaccia grafica e poi hai pensato di implementarla, semplicemente scrivendo il codice del core che, nel tuo caso sono le routine matematiche.
Visto che il layout sembra fatto abbastanza bene, hai per caso utilizzato qualche applet che ti ha formattato in maniera automatica il layout? Oppure hai generato questo layout dichiarando ogni componente grafico e la sua posizione sulla griglia attraverso un codice?
In ogni caso, una volta che hai dichiarato i componenti, li hai resi visibili, e disposti come vuoi sulla griglia, devi ora dichiarare i listener, in partica devi dichiarare PER OGNI componente, ovvero per ogni bottone, per ogni JTextField, e per ogni altro campo della tua interfaccia grafica, un diverso listener.
Stai attento che i listener per componenti diversi sono anche loro diversi, nel senso che differiscono nella sintassi, ora non mi ricordo esattamente come si dichiarano i listener per i vari componenti, ma su internet trovi facilmente tutorial su swing.
Una volta che hai dichiarato un listener per un componente, all'interno di questo listener, devi gestire l'evento che quel listener solleva, in pratica puoi vederla come se, ogni volta che premi un bottone, il programma "entra" nel listener ed esegue il frammento di codice lì contenuto.
Il programma poi si "ferma" all'interno di quel listener fintanto che l'utente non preme un nuovo bottone, in quel momento verrà chiamato un nuovo listener ed il programma entrerà nel nuovo listener, e così via.
Non esiste in SWING una funzione main alla quale ritornare.
L'unico main che scrivi (il classico main(args...)) lo devi vedere solo come una semplice sequenza di inizializzazione che viene chiamato come punto di ingresso alla tua applicazione, al quale fai solo disegnare i componenti e dichiari tutti i listener, poi swing si pone in attesa di un evento dall'utente da distribuire all'opportuno controllo.
La tua applicazione và distribuita nei vari listener.