Taschenrechner - Problem mit zwei Klassen

Status
Nicht offen für weitere Antworten.

Alenka87

Mitglied
Hallo... vllt errinert sich jemand... ich bin die, die am taschenrechner arbeitet;(

Man hat mir nun erklärt, dass ich des mit zwei klassen schreiben muss: eine Klasse "looks" in der das Layout beschrieben wir und die Objekte ihre Listener bekommen, und eine Klasse "Mathe" in der die ActionListener definiert sind und alle mathematische Funktionen.

Dabei muss die Klasse "Looks" die Klasse "Mathe" kennen, aebr umgekehrt nicht. (was ich nur teilweise nachvollziehen kann)

Aber ich habe jetzt fleißig angefangen, alles umzuschreiben.

In der Klasse "Looks" habe ich "Mathe" instanziert:
Java:
mathe xxx = new mathe();

So gebe ich ein ActionListener an die ZifferButtons:
Java:
for(int i = 0; i < 10; i++)//ZifferButtons kriegen Zahlen + ActionListener
        {
            ziffern[i] = new JButton(i+"");
            ziffern[i].addActionListener(xxx.new ZifferButtons());
        }


Das problem nun - ich kriege ind er Klasse "Mathe" die Listener nicht auf die Reihe... wenn diese Klasse "Looks" nicht kennen darf, wie soll ich denn sagen, von welchem Button soll die Ziffer gelesen werden und in welches Feld soll sie reingesetzt werden?

Ich habe es so versucht und dass es nicht klappt ist nachvollziehbar... nur weis sich wirklich nicht, wie ich das nun schrieben soll

Java:
class mathe
{
    String operator;
    double[] doublefeld = new double[3]; //1.zahl, 2.zahl, 3.zahl = ergebnis
    JTextField f;
    JButton b;

    class ZifferButtons implements ActionListener//1, 2, 3, 4, 5, 6, 7, 8, 9, 0
    {
        public void actionPerformed(ActionEvent e)
        {
           f.setText(f.getText() + b.getText());
            
        }
    }
}

Danke schon mal für Eure Hilfe!
 

cowabunga1984

Aktives Mitglied
Hi,

wenn die Look-Klasse die Mathe-Klasse kennt und in der Look-Klasse die ZifferButtons instantiiert werden, kannst Du denen doch einfach die Mathe-Klasse mitgeben. Wenn dann eine Ziffer gedrückt wird, kannst Du die entsprechende Methode in der Matheklasse aufrufen.
Die Mathe-Klasse braucht also nichts von Look oder ZifferButtons zu wissen.

Cowabunga! ;)
 

Alenka87

Mitglied
Ich verstehe leider nicht, wie du das meinst
n der Look-Klasse die ZifferButtons instantiiert werden, kannst Du denen doch einfach die Mathe-Klasse mitgeben

ich hab die Mathe-Klasse schon der ganzen Look-Klasse mitgegeben..


Ich mach mirg rad über folgendes Gedanken:

Wenn die Klasse Mathe die Klasse Look nicht kennt(und so wurde mir das erklärt), dann soll der Listener, beim Klick auf irgendein Button wissen, dass er etwas in irgendein Textfeld einzutragen hat . Und erst wenn der Listener an die Buttons gegeben wird, sieht er, mit welchem Button und welchem Textfeld er arbeitet...
sehe ich das richtig oder bin ich mit meinen Überlegungen auf dem Holzweg?
 

cowabunga1984

Aktives Mitglied
Jeder ZifferButton ist bei dir ein extra ActionListener. Jeder ZifferButton kennt seine Ziffer. Beim Klick auf einen Button wird dieser per Event benachrichtigt und kann dann seine Ziffer in eine Textfeld schreiben.

Dadurch, dass dein ZifferButton das ActionListener-Interface implementiert, ist er selbst ein ActionListener und muss sich selbst bei der Instantiierung als Listener registrieren.

Versuch doch einfach mal beim Klick auf einen Button etwas auf der Konsole auszugeben.
 

Alenka87

Mitglied
irgendwie schaffe ich nicht, dein Vorschlag umzusetzen, aber ich hab nun etwas anders gemacht:

Das steht bei mir in der Klasse Looks
Java:
class ZifferButtons implements ActionListener//1, 2, 3, 4, 5, 6, 7, 8, 9, 0
    {
        public void actionPerformed(ActionEvent e)
        {
            String s = e.getActionCommand();
            feld.setText(xxx.einlesen(feld) + s);
        }
    }

und das habe ich nun in der Klasse mathe:
Java:
public String einlesen(JTextField t)
    {
        String c = t.getText();
        t.setText(c);
        return c;
    }

So kann ich

Java:
for(int i = 0; i < 10; i++)//ZifferButtons kriegen Zahlen + ActionListener
        {
            
            ziffern[i] = new JButton(i+"");
            ziffern[i].addActionListener(new ZifferButtons());
        }

einfach stehen lassen und es funktioniert


Ich weiss aber nicht, ob das wirklich Objektorientiert ist???:L

????
 
Zuletzt bearbeitet:

cowabunga1984

Aktives Mitglied
Das ist sehr verwirrend was du da machst ;)

Java:
class ZifferButtons implements ActionListener//1, 2, 3, 4, 5, 6, 7, 8, 9, 0
    {
        public void actionPerformed(ActionEvent e)
        {
            String s = e.getActionCommand();
            feld.setText(xxx.einlesen(feld) + s);
        }
    }
Du verwendest diese Klasse als Listener, um auf die Events deiner JButtons zu reagieren?
Warum heißt deine Mathe-Klasse xxx?

Java:
public String einlesen(JTextField t)
    {
        String c = t.getText();
        t.setText(c);
        return c;
    }
Hier würde ich kein JTextField übergeben, sondern einen String. Immerhin soll die Mathe-Klasse von der GUI unabhängig sein. (Ich nehme mal an diese Methode kommt aus der Mathe-Klasse)

Java:
for(int i = 0; i < 10; i++)//ZifferButtons kriegen Zahlen + ActionListener
        {
            
            ziffern[i] = new JButton(i+"");
            ziffern[i].addActionListener(new ZifferButtons());
        }
Ich würde den Code so (oder so ähnlich) schreiben:
Java:
ZifferButtons buttonListener = new ZifferButtons();
for(int i = 0; i < 10; i++)//ZifferButtons kriegen Zahlen + ActionListener
{
  ziffern[i] = new JButton(i+"");
  ziffern[i].addActionListener(buttonListener);
}

Cowabunga! ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
I Problem Taschenrechner Java Basics - Anfänger-Themen 6
S Taschenrechner problem Java Basics - Anfänger-Themen 4
Z Taschenrechner Problem Java Basics - Anfänger-Themen 4
R Problem mit Taschenrechner Java Basics - Anfänger-Themen 2
B Problem mit Taschenrechner auf der Konsole Java Basics - Anfänger-Themen 10
C Taschenrechner -> Anzeige/Variablen Problem Java Basics - Anfänger-Themen 9
R Problem mit Taschenrechner Java Basics - Anfänger-Themen 14
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben