Mit Schleife erstellte gleichnamige Objekte einzeln anwählen?

h4nk

Mitglied
Moin, mein Plan ist es, einen Serienmerker zu erstellen.

1. ArrayList<Serie> mit Serien-Objekten(mit String-Name, aktueller int-Staffel und int-Episode)
2. for-Schleife macht diese Serien als Zeilen in der GUI sichtbar. Eine Zeile besteht aus: Name, Staffel, Episode und dem "+"-Button, wenn man auf diesen klickt, erhöht sich die Episode automatisch um einen Zähler.

Problem:
Ich komme irgendwie nicht drauf, wie ich bei einem Klick auf "+" jetzt die richtigte, daneben stehende Episode ändern kann (also die richtige setEpisode()-Methode in der ActionListener-Methode aufrufe).

Methode zum Anlegen der ArrayList und der dazugehörigen swing-Elemente:
Java:
public void serienlisteErstellen() {

     // ArrayList<Serie> mit Inhalten wird als .ser eingelesen

     zeile = new JPanel();
     zeile.setLayout(new BoxLayout(zeile, BoxLayout.Y_AXIS));
    
     for (Serie i : aktuelleSerienliste) {
      
       JPanel aktuelleSerien = new JPanel();
      
       JLabel name = new JLabel(i.getName());
      
       String s = String.valueOf(i.getStaffel());
       JLabel staffel = new JLabel(staffel);
      
       String e = String.valueOf(i.getEpisode());
       JLabel episode = new JLabel(episode);
      
       JButton plus = new JButton("+");
       plus.addActionListener(this);
      
       aktuelleSerien.add(name);
       aktuelleSerien.add(staffel);
       aktuelleSerien.add(episode);
      aktuelleSerien.add(plus);
      
       zeile.add(aSerien);
      
       frame.getContentPane() .add(BorderLayout.CENTER, zeile);
     }
   }

ActionListener
Java:
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == this.plus) {
       // Keine Ahnung was ich hier hinschreiben soll
     }

Da es schon spät ist, hoffe ich mal, dass ich mein Problem halbwegs klar rüberbringen konnte. Danke schonmal!
 
Du solltest Deinen Button einen Namen geben mit

Code:
plus.setNam(Integer(i).toString());

Dann kannst du in deinem Listener testen welcher Button gedrückt wurde

Code:
int Serie = Integer.parseInt(ae.getSource().getName());

Gruß

Claus
 

Neue Themen


Zurück
Oben