Frage von Ostervogel, 75

Brauche Hilfe bei Java Rechner..?

Hey, versuche mich gerade an einem kleinen Java Rechner( Anfänger) und bekomme immer den Compiler-Fehler "no suitable method found for add /ActionListner(int)?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von KnusperPudding, Community-Experte für Java, 16

Da haben sich mehrere Fehler eingeschlichen.

1. button.add() nimmt ausschließlich Elemente vom Typ "Component" entgegen, bzw. Elemente die davon ableiten. Deshalb kannst du damit weder einen Integer Wert noch einen Actionlistener anfügen.

2. Deine Methode multipliziere() wird nie verwendet.

3. Deine Allgemeine Struktur ist ein ziemliches Chaos. Du mischt die GUI-Erstellung mit deiner Rechnung die du eigentlich machen willst. Und das in einer Methode die du multipliziere() nennst.

Demnach folgende Tipps:

1. Erstelle eine Methode, z.B.: createGUI() hier packst du die Komplette GUI Erstellung rein. Button an den Frame anfügen, etc.

2. pro Rechenoperation eine Methode: z.B.: multipliziere() in der ausschließlich die Rechenoperation geschieht.

3. Anfügen eines Actionlisteners an deinen Button, via: button.addActionlistener() - Welcher dann deine Rechenoperation durchführt.

Antwort
von derJonesy, 31

Ich finde deinen Code ehrlichgesagt sehr unübersichtlich, also so intuitiv würde ich sagen ist deine Variable "ergebnis" nicht im Einflussbereich des ActionListeners den du neu initialisierst, d.h. für deinen ActionListener gibt es diese Variable garnicht.

Ein Tipp wäre die Rechnung und das GUI komplett getrennt zu halten, bei dir ist irgendwie alles gemischt.

Beispiel für die Funktion "multipliziere" (static, weil der Vorgang immer gleich ist, jedem Objekt diese Methode zu geben wäre sinnlos)

public static int multiply(int zahl1, int zahl2){
return zahl1 * zahl2;
}

public void GUI(){
// hier Frame etc deklarieren

... new ActionListener(){
public void actionPerformed(){
// multiplizieren mit "Klasse.multiply(erstezahl, zweitezahl);"
}
}
}
Antwort
von Unkreatiiiev, 23

Die Klasse JButton hat keine Methode "add(ActionListener)". Nur "addActionListener(ActionListener)".

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten