Hallo,
erstmal nette Grüße an alle, als Neuling im Forum :bae:.
Ich habe ein Problem beim Zuordnen von ActionListenern zu Buttons.
Die Buttons habe ich als Array definiert und will jedem nun in der for-Schleife jeweils eine eigene Methode zuordnen die sich im Objekt AktionsListener befinden. Dabei haben die Methoden den Namen actionX(), wobei X für die Nummer des Buttons geht. Ich habe es jetzt schon ewig versucht hin zu bekommen und habe dazu unter anderem schon probiert es nach diesem Thread zu lösen: http://www.java-forum.org/de/viewtopic.php?p=240462. Hieraus habe ich den Code der zwischen "new ActionListener()" steht abgeleitet.
Mittlerweile bin ich jetzt so weit dass ich das i nicht erst in den Klammern von for erzeuge, sondern schon vorher. Das hat ein Problem gelöst das mir Eclipse zeigte, dass ich keine Variablen einer äußeren Methode von einer inneren aus aufrufen darf, außer sie ist als final deklariert.
Ich müsste jetzt im Moment nur noch dieses m irgendwie so umwandeln dass es als Pfad zu der Methode akzeptiert wird. Oder wäre eine andere Lösung sinnvoller?
Viele Grüße,
Thomas
Fensta.java
AktionsListener.java
erstmal nette Grüße an alle, als Neuling im Forum :bae:.
Ich habe ein Problem beim Zuordnen von ActionListenern zu Buttons.
Die Buttons habe ich als Array definiert und will jedem nun in der for-Schleife jeweils eine eigene Methode zuordnen die sich im Objekt AktionsListener befinden. Dabei haben die Methoden den Namen actionX(), wobei X für die Nummer des Buttons geht. Ich habe es jetzt schon ewig versucht hin zu bekommen und habe dazu unter anderem schon probiert es nach diesem Thread zu lösen: http://www.java-forum.org/de/viewtopic.php?p=240462. Hieraus habe ich den Code der zwischen "new ActionListener()" steht abgeleitet.
Mittlerweile bin ich jetzt so weit dass ich das i nicht erst in den Klammern von for erzeuge, sondern schon vorher. Das hat ein Problem gelöst das mir Eclipse zeigte, dass ich keine Variablen einer äußeren Methode von einer inneren aus aufrufen darf, außer sie ist als final deklariert.
Ich müsste jetzt im Moment nur noch dieses m irgendwie so umwandeln dass es als Pfad zu der Methode akzeptiert wird. Oder wäre eine andere Lösung sinnvoller?
Viele Grüße,
Thomas
Fensta.java
Code:
private int i;
private Button bu[] = new Button[19];
private AktionsListener al = new AktionsListener(this);
public Fensta() {
for (i = 0; i <= 18; i++) {
bu[i] = new Button();
bu[i].addActionListener(new ActionListener(){
Method[] methods = al.getClass().getMethods();
public void actionPerformed(ActionEvent e){
String m= al+"."+methods[i].getName();
//Hier sollte m als Aufruf der zugehörigen Methode hin (Bsp.: bu[0] ruft action0 in AktionsListener auf).
}
});
}
}
Code:
private Fensta f;
public AktionsListener(Fensta f) {
this.f=f;
}
//Aktionen
public void action0(ActionEvent e) {
}
public void action1(ActionEvent e) {
}
public void action2(ActionEvent e) {
}
public void action3(ActionEvent e) {
}
public void action4(ActionEvent e) {
}
public void action5(ActionEvent e) {
}
.
.
.
usw.