PDA

Visualizza la versione completa : [JAVA] SWING JLabel


userfra
03-10-2002, 17:42
Ciao,

esiste un metodo per fare il refresh di una JLabel?

pgm
03-10-2002, 18:04
Originariamente inviato da userfra
Ciao,

esiste un metodo per fare il refresh di una JLabel?

non esiste un vero e proprio refresh, io avevo fatto così

public void refresh() {
//per il refresh dei campi
Field1.setText("");
Field2.setText("");
.
.
.
}

Richiami il metodo a tuo piacimento.

comunque fai una ricerca sul forum, l'ho già affrontato tempo fa questo argomento


:ciauz:

userfra
04-10-2002, 09:51
il refresh dei campi è condizionato da un campo del database

pgm
04-10-2002, 10:27
cioè? :master:

userfra
04-10-2002, 11:00
Cioè, tramite un JButton cambio il valore del campo in un database

Per esempio io ho due JButton e una JLabel, un JButton inserisce nel db la scritta on e l'altro off e la JLabel interroga il db è il suo valore di testo sarà il valore memorizzato nel database.

solo che quello che voglio fare io deve essere una immediata, cioè appena aggiorno il db la JLabel deve cambiare

come posso fare?

ghinz
04-10-2002, 12:05
Che io sappia java non offre componenti JLabel che si possano collegare a campi di database (come ad es. in Access), quindi devi essere tu a scrivere il codice che legge dal db il campo che ti interessa e lo scrive nella label.
Immagino che all'apertura del frame tu abbia una funzione che fa una query e aggiorna la label: quando premi un JButton e aggiorni il campo nel db devi richiamare la stessa funzione.

Questa è la via più grezza, altrimenti devi pensare a implementare un meccanismo di eventi che ti tenga aggiornati i campi...

Ciao :)

userfra
04-10-2002, 12:11
Originariamente inviato da ghinz
Immagino che all'apertura del frame tu abbia una funzione che fa una query e aggiorna la label: quando premi un JButton e aggiorni il campo nel db devi richiamare la stessa funzione.



Fino qui ci siamo, però quando aggiorno il mio campo del db, nel JFrame vedo sempre la JLabel con il testo "vecchio"

ghinz
04-10-2002, 12:24
Ah! :master:
Hai verificato che nel database il campo cambi veramente? Non so che db usi, ma magari non hai fatto il flush o il commit (cioè hai chiuso la transazione) e la query ripesca su il valore vecchio...
Per forzare il refresh della label effettivamente non saprei, hai provato a nasconderla e rivisualizzarla con setVisible(false/true)? Giusto per provare...

userfra
04-10-2002, 12:29
il database è access, e il campo di aggiorna

Loading