2012-02-08 22 views
5

Sto implementando una versione specializzata di JTextField e voglio comprimerla in un proprio bean. Il bean funziona abbastanza bene finora. Ecco la mia domanda:Mostra evento per JTextField in Java?

Come posso rilevare quando viene visualizzato JTextField? In modo che io possa iniziare alcune cose grafiche ogni volta che vengono mostrati i campi.

L'evento ShowComponent non funziona per me. FocusGained e FocusLost funzionano bene.

Spero che qualcuno conosca la soluzione.

risposta

4
+0

o addComponentListener (...) per tenere traccia delle modifiche di visibilità – alex

+0

@alex - in genere non aiuta: un componenteEvent viene generato quando lo stato della proprietà visible cambia. Poiché tale proprietà è vera per impostazione predefinita, non viene attivata quando la aspettiamo intuitivamente :-) – kleopatra

+0

molte grazie per la risposta veloce! – salocinx

2

Mentre si utilizza ComponentListener e si fanno cose nel suo componente Sembra intuitivamente che la strada sia la strada da percorrere, non aiuta: si attiva quando viene modificata la proprietà visibile del componente. Quella proprietà è vera per impostazione predefinita (anche se non è stata ancora aggiunta a nessun contenitore visualizzato sullo schermo) e di conseguenza non è stata attivata alcuna visualizzazione.

Invece, utilizzare un AncestorListener e fare ciò che è necessario nel suo antenatoAggiunto.

+0

+1 escluso ---> domanda, per quale motivo su questo mondo hai suggerito di aggiungere Ancestor al campo di testo J (formattato) – mKorbel

+0

@mKorbel non capisco cosa intendi: la domanda (come ho capito, potrebbe essere sbagliata) è quello di ricevere una notifica quando viene mostrato il campo (pseudonimo: aggiunto) – kleopatra

+0

hmmm grazie, devo provare che cosa accadrà aggiungere J (Formattato) TextField al contenitore un_visible prima, quindi per inviare questo Container – mKorbel