Avatar billede nielyng Nybegynder
09. november 2003 - 20:22 Der er 5 kommentarer og
1 løsning

generering af knapper udfra ArrayList?

Hej Alle!

Jeg sidder og fedter lidt med at udtænke en løsning til et problem:

Jeg har i mit domænelag af min applikation en ArrayList, som indeholder forskellige instanser af en simpel Person-klasse.

Nu vil jeg så gerne lave en JFrame, hvor der genereres en JButton med tilhørende ActionListener pr. Person i min ArrayListe.

Jeg er altså ude i noget med at iterere igennem listen, og genere en knap pr. gang, men hvordan undgår jeg lige, at alle mine knapper kommer til at hedde jbutton1, og dermed fjerner min reference til den første knap (her kunne jeg forestille mig at der vil opstå problemer med minknap.addActionListerner(this)..

altså: det jeg vil er at gi' mine referencevariable navn efter navnet på personen i listen..

øhhh.. Er det sort snak?

Mvh.

Nilez
Avatar billede arne_v Ekspert
09. november 2003 - 20:24 #1
Umiddelbart tror jeg at det ville være best at have er array af JButton's !
Avatar billede arne_v Ekspert
09. november 2003 - 20:27 #2
Noget a la:

JButton[] allbutton = new JButton[list.size()];
for(int i = 0; i < list.size(); i++) {
  allbutton[i] = new JButton(((Person)list.get(i)).getNavn());
  allbutton[i].addActionListener(this);
  getContentPane().add(allbutton[i]);
}
Avatar billede nielyng Nybegynder
09. november 2003 - 22:20 #3
Det lyder som en fornuftig plan, som jeg da såsandelig vil afprøve..

hvordan ser den så ud ved ActionPerformed? Sådan her vel sagtens:

public void actionPerformed(ActionEvent e){
      for(int i = 0; i < list.size(); i++) {
          if (e.getSource() == (Person)list.get(i).getNavn(){
        visPerson((Person)List.get(i));
}
}
}

Det ser da ud til at kunne du...
Avatar billede arne_v Ekspert
09. november 2003 - 22:55 #4
Jeps.
Avatar billede arne_v Ekspert
16. november 2003 - 22:00 #5
OK ?
Avatar billede nielyng Nybegynder
17. november 2003 - 18:36 #6
Det virker helt fint! Jeg har ikke implementeret actionPerformed metoden endnu, men jeg kan da se, at jeg kan finde ud af hvilken actionCommand der er tale om ved at skrive e.getSource() ud i terminalvinduet.. Såe.. Tak for hjælpen!
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