[java] e.getSource onder Swing *

Pagina: 1
Acties:

  • LordMatanza
  • Registratie: Oktober 2002
  • Laatst online: 07-04-2023
hallo,

ik gebruik met een awt button altijd de volgende methode:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
{
  ...
  {
    ...
    btnSend = new Button ( "Send" );
    btnSend.setBounds( 350, 380, 85, 85 );
    btnSend.addActionListener( new buttonHandler() );
    add ( btnSend );
  }

  private class buttonHandler implements ActionListener
  {
    public void actionPerformed( ActionEvent e )
    {
      if( e.getSource() == btnSend )
      {
        System.out.println( String message );
      }
    }
  }
}


als ik dit echter met een swing methode probeer zegt hij dat hij dat hij de knop btnSend niet kent... weet iemand hier een andere manier voor?
ik wil namelijk een verzamelmethode/klasse voor alle buttons en niet alle buttons aparte ActionListeners geven.

thnx.

[ Voor 6% gewijzigd door LordMatanza op 31-10-2003 14:48 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Waarom zou je in godsnaam een algemene action listener willen maken en niet een action listener per button? Ik doe die zelf altijd omdat je niet weer achteraf hoeft uiit te zoeken welke button het was, ik raad je deze manier van werken dus volledig af.

En verder maak je nu ook al per button een actionlistener aan, dus volgens mij snap je niet helemaal wat je doet.

[ Voor 19% gewijzigd door Alarmnummer op 31-10-2003 14:55 ]


  • LordMatanza
  • Registratie: Oktober 2002
  • Laatst online: 07-04-2023
sorry,

ik kom net achter mijn antwoord...

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 16-08 19:14

Eelke Spaak

- Vlad -

LordMatanza schreef op 31 oktober 2003 @ 14:55:
sorry,

ik kom net achter mijn antwoord...
Het is gebruikelijk dat je de uiteindelijke oplossing dan eventjes deelt met je mede-P&W-ers. Ik ben ook wel benieuwd namelijk, want je geposte code zag er redelijk OK uit. :)

TheStreme - Share anything with anyone


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Maar ga je nu wel een aparte actionlistener per button maken??

Ik werk zelf altijd met Actions (class die de ActionListener implementeerd) en dit is nog handiger dan een ActionListener. Je kan dezelfde action aan meerdere components geven (bv de ExitAction) en die kan je dan aansluiten op een exitMenuItem, een exitToolbarButton en een exitButton. Als je verder wilt dat mensen niet kunnen exiten (omdat er nog iets gesaved ofzo moet worden), dan disable je de action (action.setEnabled(false)) en die buttons zijn ook meteen disabled: super!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 14:03

Robtimus

me Robtimus no like you

Vladimir G. schreef op 31 oktober 2003 @ 14:57:
[...]

Het is gebruikelijk dat je de uiteindelijke oplossing dan eventjes deelt met je mede-P&W-ers. Ik ben ook wel benieuwd namelijk, want je geposte code zag er redelijk OK uit. :)
Wat dacht je van die button declareren als class field? Dan kun je hem gebruiken binnen de hele class.

Op de manier die de TS gebruikt (externe ActionListener) moet die button ook nog public zijn. Daarom laat ik altijd de frame/het panel/etc zelf ActionListener / MouseListener implementeren. Dan houd je alles binnen de class zelf.

Maar ik denk dat ik es ga overstappen op Actions, dat lijkt me toch wel wat efficienter. Plus je frame kan dan niet als ActionListener voor andere componenten gebruikt worden.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Alarmnummer schreef op 31 oktober 2003 @ 14:57:
Maar ga je nu wel een aparte actionlistener per button maken??

Ik werk zelf altijd met Actions (class die de ActionListener implementeerd) en dit is nog handiger dan een ActionListener. Je kan dezelfde action aan meerdere components geven (bv de ExitAction) en die kan je dan aansluiten op een exitMenuItem, een exitToolbarButton en een exitButton. Als je verder wilt dat mensen niet kunnen exiten (omdat er nog iets gesaved ofzo moet worden), dan disable je de action (action.setEnabled(false)) en die buttons zijn ook meteen disabled: super!
Gebruik je dan tussen de action en de buttons/menuitems ook nog een Observerpattern zodat de gui items zichzelf kunnen disablen? (grijze tekst ipv zwarte etc).

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 31 oktober 2003 @ 15:24:
[...]


Gebruik je dan tussen de action en de buttons/menuitems ook nog een Observerpattern zodat de gui items zichzelf kunnen disablen? (grijze tekst ipv zwarte etc).
Is al helemaal voor je geimplementeerd :) Handig of niet soms? :)
Pagina: 1