Pagina 1 di 1

[JAVA][RISOLTO] Operazioni su caselle di testo

Inviato: lun 13 lug 2009, 15:10
da Delcaran Lëdeloth
Salve a tutti! Sto progettando una GUI in Java utilizzando NetBeans 6.7, e ho notato con piacere che mi semplifica notevolmente la gestione della grafica e di alcune proprietà degli elementi. Quando riesco a risolvere questo piccolo problema sono molto più rilassato!
Allora, la mia GUI è composta principalmente da caselle di testo JTextField, alcune editabili e altre no. Quelle non editabili sono collegate ad una o più caselle editabili. Quando sono collegate ad una sola editabile ho bindato la loro proprietà text alla proprietà text della casella a cui sono collegate, e ottengo come desiderato che la casella collegata contiene lo stesso valore della casella a cui è collegata. Ora il mio dubbio...quando devo collegare una casella a più caselle??? Per esempio, mettiamo che la casella A sia uguale a B+C, oppure a B/2 (sono queste operazioni basilari che mi interessano) e che tutte le caselle contengano solo valori interi (come infatti è) positivi o negativi, come faccio a fare in modo che A assuma il valore corretto?
Altro problema. Dovrei mettere una checkbox collegata ad una casella di testo: quando la checkbox è selezionata, il valore della casella di testo viene aumentato di +5, altrimenti no. Il valore della casella di testo, oltre che alla checkbox, dipende anche da un'altra casella di testo.
Ammetto che tutto quello che ho fatto l'ho fatto utilizzando NetBeans, perché la mia conoscenza di Swing è pressoché nulla... grazie a tutti!!!

Re: [JAVA] Operazioni su caselle di testo

Inviato: lun 13 lug 2009, 16:31
da Mercyful
Ciao,
Per renderlo efficace potresti utilizzare i Listener e gli eventi per gestire le modifiche delle caselle B e C e quando queste due hanno dei valori per te coerenti puoi riempire il campo A.text..
Potrebbe essere una soluzione?

Re: [JAVA] Operazioni su caselle di testo

Inviato: lun 13 lug 2009, 17:26
da Delcaran Lëdeloth
Si, pensavo di fare proprio una cosa del genere...una piccola funzione che cattura i valori di B e C.. Il mio dubbio era se questa funzione deve essere messa dentro B e C o dentro A o essere globale... Non riesco a capire se un evento che si verifica su una casella può richiamare un funzione di un'altra casella... Oppure se una casella può "catturare" un evento su un'altra casella...

Re: [JAVA] Operazioni su caselle di testo

Inviato: lun 13 lug 2009, 17:40
da Mercyful
Nel codice in cui istanzi le JTextField, nella classe che crea il form e il resto, li dentro devi implementare la logica per il funzionamento degli event sul onModify (penso si chiamino cosi) oppure onTextChange sono funzioni come onButtonClick e puoi accedere a tutti gli oggetti definiti nella stessa classe. quindi anche ad A , e C e gli altri..
Se programmi solamente usando la grafica non lo vedi.. guarda bene anche il codice!

Re: [JAVA] Operazioni su caselle di testo

Inviato: lun 13 lug 2009, 20:30
da ulisse89
Mercyful ha scritto:Nel codice in cui istanzi le JTextField, nella classe che crea il form e il resto, li dentro devi implementare la logica per il funzionamento degli event sul onModify (penso si chiamino cosi) oppure onTextChange sono funzioni come onButtonClick e puoi accedere a tutti gli oggetti definiti nella stessa classe. quindi anche ad A , e C e gli altri..
Se programmi solamente usando la grafica non lo vedi.. guarda bene anche il codice!
Esatto. La classe che implementa la gui, deve implementare ActionListener. Ogni componente che aggiungi alla finestra genera eventi per un tot di azioni che l'utente farà su di lui. Chi gestisce questi eventi è la classe che implementa ActionListener. In questa metterai un metodo actionPerformed(Event e) che prende in ingresso un evento generato da un componente e farà quello che vuoi tu. ActionListener può essere implementato anche da qualcun altra classe, ma ti conviene quella della GUI perchè come dice Mercyful hai accesso a tutti i componenti su cui agisci dopo un evento.

Re: [JAVA] Operazioni su caselle di testo

Inviato: mar 14 lug 2009, 11:08
da Delcaran Lëdeloth
Ho rispolverato il manuale e ho eclissato tutti i miei dubbi in proposito :) da come l'avevano proposto in aula la faccenda sembrava decisamente più incasinata ;p
Ho compreso tutto e ho visto che è piuttosto semplice come storia...ora come ora mi sento decisamente stupido ad aver fatto una simile domanda :oops:
Da programmatore C con anni di esperienza dovevo capirlo subito che con il codice si fa prima :roll:
Chiedo venia e mi metto a lavoro!