Java Bruchrechner bauen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hey!

Also ich weiß nicht, ob ich recht verstanden habe, aber die gröbsten Fehler kann ich dir nennen.

Du versucht gewisse Methoden zu nutzen. Diese Methoden benötigen allerdings keinen numerischen Datentypen, denen du ihnen aber durch eine Rechnung als Argument übergibst. Also stellst sich die Frage, wie ich einen Integer als String ausdrücken kann. Am Einfachsten machst du das mit String.valueOf(int).

Des Weiteren versuchst du die Rechenmethoden mit einer Vielzahl an Argumenten aufzurufen. Du benötigst aber keine, zumindest hast du sie im Code nicht angegeben.

Ansonsten beschreibe einmal bitte, wie der Bruchrechner aussehen soll, beziehungsweise wie die Aufgabe aussieht, da du wahrscheinlich eine bekommen hast. Alternativ kann ich empfehlen eine andere IDE als BlueJ zu benutzen, da BlueJ viele Sachen nicht besitzt und nur für schulische Zwecke verwendet wird. Den Sourcecode kannst du dann wieder in BlueJ reinkopieren :D

Hoffe, ich konnte helfen.

Liebe Grüße

Kritiko (Alex)

Woher ich das weiß:Studium / Ausbildung
Thomlol 
Fragesteller
 09.12.2019, 19:51

Die Aufgabe lautet einen graphischen Bruchrechner zu programmieren mit kürzen, gleichnamig machen und halt die üblichen Rechenarten +, -, /, *. Dazu habe ich schon die Buttons gemacht welche jeweils die Rechenoperationen ausführen soll, heißt ich drücke den Button mit + und er soll die bereits vorhandene Methode ausführen zur Addition eben. Das Ergebnis soll dann in den Textfields (für die Ausgabe) angezeigt werden, das sind ja 2 eins für Zähler und 1 für Nenner

0
KritikoAlex  09.12.2019, 22:04
@Thomlol

Hey!

Genau, dann benötigst du zum Beispiel die Methode:

public int add (int zahl1, int zahl2) {
   return zahl1 + zahl2;
}

Das Ergebnis dieser Methode setzt du dann in das entsprechende Textfeld ein.

Wichtig ist, dass du den Überblick behältst, was nun dein Eingabelayer und was dein Ausgabelayer darstellt und was deine Hilfsmethoden sind.

Hoffe, ich konnte dir helfen!

Liebe Grüße

Kritiko (Alex)

0

Schade, dass du die Punkte 3 und 5 von meiner Antwort von vor 6 Tagen ignoriert hast. Aber es ist deine Entscheidung. 😐

Bei deinem ActionListener fallen mir zudem gleich drei Punkte ins Auge:

1) Du wiederholst dich ziemlich oft. Es würde doch reichen, die Variablen (nenner, nenner2, ...) alle nur einmal zu initialisieren.

2) Ein Name wie jb ist für eine Variable ziemlich nichtssagend.

3) Wenn ein Button angeklickt wird, wird die actionPerformed-Methode ausgeführt. Es ist in dem Moment klar, dass als Source nur ein einziges Button-Objekt infrage kommt. Dennoch läufst du durch alle if-Bedingungen, als könnte e.getSource sowohl Button 1 als auch Button 2 zugleich sein. Ein if-else if wäre angemessener:

Object sender = e.getSource();

if (sender == jb[0]) {
  // ...
}
else if (sender == jb[1]) {
  // ...
}
// etc. ...

Zu deinem Problem:

Die setText-Methode erwartet, dass du einen String übergibst, keine Zahl. Du musst also deine Zahl erst explizit umwandeln. Sei es durch eine Konkatenation oder eine Methode wie toString.

Beispiel:

int number = 1;
String numberAsString = Integer.toString(number);

Im Übrigen ist es eher unschön, an so einer Stelle Zuweisungen vorzunehmen. Nicht deutlich lesbarer Code ist meist eine potenzielle Fehlerquelle.

Thomlol 
Fragesteller
 09.12.2019, 20:13

Wenn ich da else statt if hinschreibe kommt die Fehlermeldung "not a statement"

0
regex9  09.12.2019, 22:36
@Thomlol

Folgendermaßen hast du es ganz sicher nicht so geschrieben, wie ich es in meinem obigen Beispiel vorgemacht habe.

0
Thomlol 
Fragesteller
 09.12.2019, 20:15

Wo genau soll ich den Befehl mit dem toString einfügen? In den einzelnen Methoden mit den Rechenoperationen oder? Also ich meine Explizit bei mir jetzt

0
regex9  09.12.2019, 22:34
@Thomlol

Genau da, wo du deine Zahlen in Strings umsetzen möchtest, um sie bspw. setText übergeben zu können.

0