[Java lista] jpanelrol esemeny generalasa

Zidarics Zoltan zamek at vili.pmmf.hu
2007. Jan. 10., Sze, 07:56:01 CET


hello,

Valaszolok magamnak ( codesearch.google.com segitett ) :)
Minden jo volt, csak az esemeny kuldes igy nez ki:

         for (int i = listeners.length - 2 ; i >= 0; i -= 2) {
             if (listeners[i] == ChangeListener.class) {
                 ((ChangeListener)listeners[i+1]).stateChanged(evt);
             }
         }

vagyis egy listener regisztraciojakor bekerul a listener es melle meg a kuldo 
objektum is!
Ezert kettesevel kell nezegetni a listenereket,

2007. január 10. 00.21 dátummal Zidarics Zoltan ezt írta:
> Hello,
>
> Van egy JPanelem, ami egy loginszeru kepzodmeny (role azonosito bekerese).
> Azt szeretnem, ha valaki begepel egy jelszot, akkor generalodjon egy
> esemeny, amivel jelezni tudom a role valtozasat a kulvilag szamara. A
> kerdes az, hogy hogyan tudok esemenyt generalni, ill. actionlistener-eket
> fogadni? Igy probalom:
>
> a jpanel-ben:
>
> 	public void addChangeListener (ChangeListener l) {
> 		listenerList.add(ChangeListener.class, l);
> 	}
>
> 	public void removeChangeListener (ChangeListener l) {
> 		listenerList.remove(ChangeListener.class, l);
> 	}
>
> ha kesz az esemeny:
>
>          ChangeEvent evt = new ChangeEvent(usr);
>
>          // Get list of listeners
>          Object[] listeners = listenerList.getListenerList();
>
>          // Send event to all listeners
>          for (int i=0; i<listeners.length; i++) {
>              if (listeners[i] == ChangeListener.class) {
>                  ((ChangeListener)listeners[i]).stateChanged(evt);
>              }
>          }
>
> a fogado oldalon:
>
> 	        loginPanel.addChangeListener(new ChangeListener() {
> 	        			public void stateChanged (ChangeEvent e ) {
> 	        				changeUser (e);
> 	        			};
> 	        		}
> 	        	);
>
> aztan kapok egy szep kover classcastexceptiont :(
> 	"java.lang.Class cannot be cast to javax.swing.event.ChangeListener"
>
> mit rontottam el?
>
> koszi,

-- 
Zoltan Zidarics programmer
PTE University Pecs, Hungary
icq: 43288694


További információk a(z) Javalist levelezőlistáról