Misschien een wat ongelukkige titel, maar kon er zo even snel niets beters van maken.
Ik ben nu wat aan het experimenteren met Arrays van Swing objecten, om zo een dynamische applicatie te kunnen maken, en hierbij stuit ik op het volgende probleem.
Ik heb een button-array gemaakt en een private integer die dus het aantal objecten bepaalt (dat is de enige waarde die bepaald wordt door de gebruiker)
Hierna maak ik de buttons aan in een JPanel
aantal_patches heeft een waarde van 5, en ik krijg ook keurig netjes 5 JButtons in mijn panel met allen Start 1 t/m 5.
Nu wil ik aan deze buttons een Actionlistener hangen, zodat er ook nog iets mee gedaan kan worden. Dat heb ik op deze manier gedaan.
Wat ik begrijp is dat de waarde van i pas bepaald wordt nadat op de knop is geklikt. Omdat ik bij elke button "Knop 5 aangeklikt" krijg.
Kan ik op een manier de waarde van i binnen de actionlistener definiëren? Ik zat zelf te denken aan een integer-array die dan weer gevuld wordt, maar ik zou graag een reactie van jullie expertise afwachten voor ik me onnodig in bochten ga wringen.
Ik ben nu wat aan het experimenteren met Arrays van Swing objecten, om zo een dynamische applicatie te kunnen maken, en hierbij stuit ik op het volgende probleem.
Ik heb een button-array gemaakt en een private integer die dus het aantal objecten bepaalt (dat is de enige waarde die bepaald wordt door de gebruiker)
Hierna maak ik de buttons aan in een JPanel
Java:
1
2
3
4
| for (i = 0; i < aantal_patches; i++) { button[i] = new JButton("Start " + (i + 1)); buttonPanel.add(button[i]); } |
aantal_patches heeft een waarde van 5, en ik krijg ook keurig netjes 5 JButtons in mijn panel met allen Start 1 t/m 5.
Nu wil ik aan deze buttons een Actionlistener hangen, zodat er ook nog iets mee gedaan kan worden. Dat heb ik op deze manier gedaan.
Java:
1
2
3
4
5
6
7
8
| for (i = 0; i < aantal_patches; i++) { button[i].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Knop " + i + " aangeklikt"); } }); } |
Wat ik begrijp is dat de waarde van i pas bepaald wordt nadat op de knop is geklikt. Omdat ik bij elke button "Knop 5 aangeklikt" krijg.
Kan ik op een manier de waarde van i binnen de actionlistener definiëren? Ik zat zelf te denken aan een integer-array die dan weer gevuld wordt, maar ik zou graag een reactie van jullie expertise afwachten voor ik me onnodig in bochten ga wringen.