Avatar billede jaffafo Nybegynder
19. april 2007 - 08:34 Der er 5 kommentarer og
1 løsning

Mange buttons, men kun en event?

Hej

Jeg sidder med et lille program med 24 knapper. Disse knapper repræsenterer brikker i et spil. Når man trykker på en knap bliver den rød eller blå alt efter hvis tur det er, spiller 1 eller 2.

Problemet er så at jeg er nødt til at oprette 24 eventhandlers til disse knapper for at "catche" click events..  er det ikke muligt at lave en enkelt event som alle knapper så "bruger"?

Mvh
Avatar billede mikkelbm Nybegynder
19. april 2007 - 09:12 #1
Jo da. (lidt pseudo kode)

ActionListener buttonHandler = new ActionListener (object sender, ActionEvent e)
{
  JButton button = (JButton)sender;
  // Gør hvad du vil med den pågældende knap...
}

...

button1.addActionListener (buttonHandler);
button2.addActionListener (buttonHandler);
button3.addActionListener (buttonHandler);
button4.addActionListener (buttonHandler);
... osv.
Avatar billede mikkelbm Nybegynder
19. april 2007 - 09:14 #2
Og det var så ikke helt rigtigt :)

ActionListener buttonHandler = new ActionListener ()
{
  public void actionPerformed (object sender, ActionEvent e)
  {
    JButton button = (JButton)sender;
    // Gør hvad du vil med den pågældende knap...
  }
};

Så skulle den være der...
Avatar billede mikkelbm Nybegynder
19. april 2007 - 09:15 #3
Og hvis du vil gøre noget specielt afhængig af hvilken knap der bliver trykket på:

ActionListener buttonHandler = new ActionListener ()
{
  public void actionPerformed (object sender, ActionEvent e)
  {
    JButton button = (JButton)sender;
    if (button == button1)
      ; // Udfør kode...
    else if (button == button2)
      ; // Udfør kode...
    else if (button == button3)
      ; // Udfør kode...
    ... osv.
  }
};
Avatar billede mikkelbm Nybegynder
19. april 2007 - 09:17 #4
Jeg har arbejdet for meget med .NET på det sidste:

ActionListener buttonHandler = new ActionListener ()
{
  public void actionPerformed (ActionEvent e)
  {
    JButton button = (JButton)e.getSource();
    // Gør hvad du vil med den pågældende knap...
  }
};

Nu er den der vist...
Avatar billede jaffafo Nybegynder
19. april 2007 - 12:10 #5
takker..  du smider bare et svar :)
Avatar billede mikkelbm Nybegynder
19. april 2007 - 12:23 #6
Kommer her...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester