Newsgroup: it.comp.java
Titolo: JLabel ....

1) Creo un oggetto pannello nel cui interno vi è un
etichetta(JLabel) che imposto con una scritta iniziale.
2) Aggiungo questo pannello in un frame.
3) Dovrei poi poter cambiare questa scritta ma non ci
riesco.
Qualcuno sa come si fa?
Grazie

 Qualcuno sa come si fa?
Per esempio, dai una visibilita' piu' globale alla jlabel.
Saluti
CarMas


+ setText(s : String)

 ha scritto nel messaggio
news:drnnqc$2oo$1...@domitilla.aioe.org...

Chiaramente ho creato una classe che estende JPanel e l'ho
impostata come ascoltatore di un evento, quando si verifica
l'etichetta creata internamente
alla classe dovrebbe cambiare la scritta, ho provato già nei
modi suindicati ma non funziona, forse non è possibile!!

 
Stai modificando l'istanza di JLabel corretta ???

 ha scritto nel
messaggio news:43DF6E3A...@hotmail.com...

;) caspita mi sa che hai ragione provo

 ha scritto nel messaggio
news:43df85fd$0$22093$4faf...@reader1.news.tin.it...

Si, in effetti ora sono certo di referenziare l'etichetta
giusta, però anche prima lo ero!! :S e qui casca l'asino
:'( che sarei io ovviamente.
Ricapitolando:
Avevo creato una classe A che estende JFrame poi una B che
estende JPanel e implementa una ascoltatore
Nelle B c'era l'etichetta  JLabel BE.
Quindi in A avevo impostato un timer che prendeva B come
ascoltatore e nel metodo Performed avevo posto che
la variabile pubblica BE fosse settata secondo una nuova
scritta.
Ora nel main creavo una istanza di A  di nome a1.
In A creavo una istanza di B di nome b1.
Il timer poneva b1 come come ascoltatore, e quindi l'oggetto
b1 che vede la propria variabile b1.BE(credo)
doveva settare quest'ultima secondo una nuova dicitura,
quindi c'era nel metodo performed BE.setText("nuova
scritta").
Questo non funziona!

Il JPanel che lo contiene ha impostato ..setOpaque(true) ?

 ha scritto nel
messaggio
news:1138725637.9...@g47g2000cwa.googlegroups.com
..
.
| Il JPanel che lo contiene ha impostato ..setOpaque(true) ?
no e le variabili erano pubbliche comunque referenziavo non
so cosa,
class A {
B b1 = new B();
....
Timer t =timer(xxx,b1);
t.start();
}
class  B implements xxx {
public JLabel BE;
......
actionPerformed(){
BE.setText("nuova scritta")
}
classe main {
A a1= new A();
a1.show();
}
questo non funge!!

prova a mettere myJPanl.setOpaque(true)
Hai buone probabilità che funzini.
Altrimenti posta il codice esatto che usi.
Ciao

 ha scritto nel
messaggio
news:1138776379....@g49g2000cwa.googlegroups.com...
prova a mettere myJPanl.setOpaque(true)
Hai buone probabilità che funzini.
Altrimenti posta il codice esatto che usi.
Grazie, ma ho risolto, ho spostato l'ascoltatore dal
pannello B contenente la JLabel al frame A che contiene il
pannello B, e poichè in A creavo l'istanza di B-> b1
incriminata :D e in B creavo la JLabel BE, ho potuto, nel
metodo performed implementato in A, stavolta, referenziare
l'etichetta BE corretta, cioè b1.BE, e applicare quindi il
metodo setText che adesso fa il suo compito mentre prima non
lo faceva, cioè dell'interno di B.
Grazie Alfonso

Gringo ha scritto:

  Prova a postare il codice

 ha scritto nel messaggio
| > news:43df85fd$0$22093$4faf...@reader1.news.tin.it...
| > |
| |   Prova a postare il codice
Grazie dell'interessamento ma non per cattiveria, ma se
leggi l'ultimo mio post
ho risolto spostando l'ascoltatore dal pannello istanza di B
al frame istanza di A,
e ora tutto funziona, in quanto la JLabel, che viene creata
con l'istanza di B che è a sua volta creata
istanziando A, viene correttamente referenziata, e quindi
tutto funziona, il  problema è che ho cancellato
e modificato il codice, e quindi, anche volendo, non so se
sono capace di ricreare l'errore eventuale e/o accidentale
che mai poteva esserci stato, non so se mi sono spieagato.
Ma Grazie di nuovo comunque