Mit Objekten rechnen, Textfield, JavaFX, Noob

Hallo zusammen
vorneweg: ich bin noch ein ziemlicher "noob" in Sachen programmieren.

Derzeit beschäftige ich mich mit JavaFX und habe dafür einen kleinen Rechner geschrieben (mehr oder weniger nach Anleitung)..
Java:
import javafx.application.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.*;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.scene.control.*;

public class Rechner extends Application {
    public static void main(String[] args) {
        launch(args);
    }
   
    @Override
    public void start(Stage stage) {
        Rechenoperation rechner = new Rechenoperation();
[B]// Soll genutzt werden! [/B]

       
       
        stage.setTitle("Rechner");
       
        GridPane grid = new GridPane();
        grid.setAlignment(Pos.CENTER);
        grid.setPadding(new Insets(5,5,5,5));
        grid.setHgap(5);
        grid.setVgap(5);
       
        Text titel = new Text("Number-Wizard");
        titel.setFont(Font.font("Arial",FontWeight.BOLD,25));
        grid.add(titel,0,0,1,1);
           
       
        Label beschriftung = new Label("Gib eine Zahl ein:");
        beschriftung.setFont(Font.font("Arial",FontWeight.BOLD,20));
        grid.add(beschriftung,0,1);
        TextField eingabeZahl = new TextField();
        grid.add(eingabeZahl,0,2);
       
        Label beschriftung2 = new Label("Ergebnis:");
        beschriftung2.setFont(Font.font("Arial",FontWeight.BOLD,20));
        grid.add(beschriftung2,0,3);
        TextField ergebnis = new TextField();
        grid.add(ergebnis,0,4);
       
        Button btn0 = new Button("Verdoppeln");
        grid.add(btn0,0,5);
       
        Button btn1 = new Button("Quadrat");
        grid.add(btn1,0,6);
       
        Button btn2 = new Button("Wurzel");
        grid.add(btn2,0,7);
   
        // Bis hier: "Oberfläche"
       
       
        btn0.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                ergebnis.setText("" + (2*Double.parseDouble(eingabeZahl.getText())));
            }
        });
       
        btn1.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                ergebnis.setText("" + (Double.parseDouble(eingabeZahl.getText())*Double.parseDouble(eingabeZahl.getText())));
            }
        });
       
        btn2.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                ergebnis.setText("" + (Math.sqrt(Double.parseDouble(eingabeZahl.getText()))));
            }
        });
        //Buttons
       
        Scene scene = new Scene(grid, 700,400);
        stage.setScene(scene);
        stage.show();
       
    }

}
Rechner.png

Das ganze erstellt ein kleines Fenster indem man eine Zahl eingeben kann, dann beim klick auf einen der Buttons eine Rechnung durchgeführt wird und dann ein Ergebnis ausgespuckt wird.

Nun würde ich gerne diese Rechenoperationen in eine eigene Klasse (rechner) auslagern. macht vermutlich keinen Sinn aber ich würds trotzdem gerne machen :)
Mein Problem: ich bekomme die eingaben im Textfield nicht richtig an meine Rechenmethoden übergeben und zurückgegeben. Ich habs mit String in Double umwandeln und andersrum versucht - klappt einfach nicht.

Das war zumindest meine Idee:
Irgendwie die Eingaben vom Textfield (eingabeZahl) in einer Double-Variable "speichern", diese an meine Rechenmethode übergeben und dann im Textfield (ergebnis) mein Ergebnis erhalten.
Ist schon der Ansatz falsch oder bin ich einfach zu doof um diesen auch umzusetzen?

Hoffe ihr konntet mir folgen :D Freu mich über jede Hilfe!
 
K

kneitzel

Gast
Also den Code
ergebnis.setText("" + (2*Double.parseDouble(eingabeZahl.getText())));

kannst Du Ersetzen durch:
ergebnis.setText("" + (rechner.verdopple(Double.parseDouble(eingabeZahl.getText()))));

Der Code umfasst ja eigentlich 4 Teile:
1. Den Wert aus dem Eingabefeld lesen
2. Den gelesenen Wert in ein Double umwandeln
3. Die Rechenoperation
4. Das Ergebnis setzen (Das sind eigentlich 2 Teile: a) in einen String umwandeln und b) das setzen des Ergebnisses)

Und es geht ja nur darum, den 3. Teil zu ersetzen:
2*... wird zu
rechner.verdopple(...)
so verdopple die Methode in Rechenoperation ist. Die Klasse kennen wir ja nicht.

Ansonsten ist das Unterteilen schon ein guter Schritt in die richtige Richtung. Das macht auf jeden Fall Sinn, sowas zu üben.
 
B

BestGoalkeeper

Gast
Tipp: Aufs Zahnrädchensymbol oben rechts klicken, [code=java][/code] schreiben und innerhalb der Tags den Code einfügen.
 
Ich muss den Thread noch einmal wiederbeleben.

Hab mir heute noch mal den Code angeschaut und ein wenig dran rumgebastelt. Dabei ist mir aufgefallen, dass sobald ich die "" (in Action event handlern) lösche, der Code* nicht mehr funktioniert.
Also diese hier: ergebnis.setText("" + (2*Double.parseDouble(eingabeZahl.getText())));

Kann mir jemand erklären wieso das so ist?
Oder muss nach dem SetText ein Leerzeichen kommen?

*(Sowohl im "alten" als auch im "neuen" Code)
 
K

kneitzel

Gast
setText erwartet als Parameter einen String. Die Rechnung liefert aber ein double. Damit passt der Aufruf nicht.

Bei dem Zusammenfügen von Strings wird jedoch automatisch ein native Type (int, double, ...) in einen String umgewandelt bzw. es wird auf Referenztypen automatisch ein toString() aufgerufen.
Somit ist dieses "" + eine einfache Möglichkeit, einen String zu bekommen.

(Das ist so vorgesehen laut Java Language Specification 5.4: " and a string conversion (§5.1.11) of the non-String operand always occurs. " https://docs.oracle.com/javase/specs/jls/se14/html/jls-5.html#jls-5.4)
 
Darauf wäre ich nie von allein gekommen..
Kann man setText auch einen anderen Parameter vorgeben?
Also wie beim "Scanner" z.b.?

Wenn ich das noch richtig im Kopf habe ging das mit dem ja.
z.B.

int a;
Scanner eingabe = new Scanner(System.in);
a = eingabe.nextInt();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Operatoren Mit Objekten rechnen Java Basics - Anfänger-Themen 7
L Rechnen mit Objekten Java Basics - Anfänger-Themen 3
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
T Kollision von 2 Objekten Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
B Reflection ändern von Objekten in Objekten Java Basics - Anfänger-Themen 12
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
N Vererbung Queue bestehend aus Superclass- und Subclass-Objekten Java Basics - Anfänger-Themen 7
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
YAZZ Schlüsselworte Töten von Objekten Gameover Java Basics - Anfänger-Themen 2
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
districon Vergleichen von Objekten Java Basics - Anfänger-Themen 20
Zeppi OOP Array in Objekten Java Basics - Anfänger-Themen 4
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
JavaNoobi Try and Catch und übergabe von Objekten Java Basics - Anfänger-Themen 2
A Klasse Menge mit Objekten der Klasse Person Java Basics - Anfänger-Themen 8
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
N Klassen Rekursion mit Feldern von Objekten Java Basics - Anfänger-Themen 14
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
B ID von unterschiedlichen Objekten bekommen? Java Basics - Anfänger-Themen 2
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
PaperHat Programmieraufgabe - Objekte in Objekten Java Basics - Anfänger-Themen 2
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
D Zusammenarbeit von Objekten Java Basics - Anfänger-Themen 1
Y Begrenzte Anzahl an Objekten? Java Basics - Anfänger-Themen 12
Kornblume Nulltyp eines Arrays von Objekten? Java Basics - Anfänger-Themen 10
A Frage zur Aufgabe Uhrzeit einstellen mit Objekten Java Basics - Anfänger-Themen 18
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
G Klassen Call by Value auch bei Objekten? Java Basics - Anfänger-Themen 2
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
arjoopy Kapselung Übergabe von Objekten aus ArrayList Java Basics - Anfänger-Themen 4
schoenosrockos Unterschied zwischen Objekten und vererbungen Java Basics - Anfänger-Themen 1
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
R Methoden Methode ruft Methode auf, ruft Methode auf (mit Objekten) Java Basics - Anfänger-Themen 4
S Serialisierung: Laden von Objekten - Risiken? Java Basics - Anfänger-Themen 4
Shizmo PriorityQueue mit Objekten Java Basics - Anfänger-Themen 10
E Instanzieren von Objekten verkürzen Java Basics - Anfänger-Themen 1
F Interaktion von Objekten verschiedener Klassen... Java Basics - Anfänger-Themen 13
D Effiziente Verwaltung der Objekten und Unterobjekten Java Basics - Anfänger-Themen 18
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
L Subklasse von ArrayList nur mit bestimmten Objekten füllen Java Basics - Anfänger-Themen 1
E Erste Schritte Gute Erklärung zu Objekten / Klassen / Methoden / Sichtbarkeiten auf Deutsch Java Basics - Anfänger-Themen 3
S Problem mit augabe von Objekten Java Basics - Anfänger-Themen 3
T Junit Mockito: Instanz von inneren erzeugten Objekten Java Basics - Anfänger-Themen 4
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
W Was passiert mit Objekten die nicht in Objektvariablen initialisiert werden ? Java Basics - Anfänger-Themen 3
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
Y Gleiche Arrays aus einem Array mit Objekten Java Basics - Anfänger-Themen 5
K Min eines Arrays mit Objekten Java Basics - Anfänger-Themen 6
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
T Statische Arrays von Objekten Java Basics - Anfänger-Themen 2
J Methoden Einfügen von Objekten nach Alphabet in ArrayList funktioniert nicht Java Basics - Anfänger-Themen 2
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
TheSorm Koordinaten von gedrehten Objekten Java Basics - Anfänger-Themen 4
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
B Aliasing bei null-Objekten Java Basics - Anfänger-Themen 3
O Java Erzeugung von neuen Objekten Java Basics - Anfänger-Themen 1
J Verständnisfragen zu dem Thema Objekten Java Basics - Anfänger-Themen 7
J Array von Objekten, wie schauts im Heap / Stack aus ? Java Basics - Anfänger-Themen 7
O Größe von Objekten Java Basics - Anfänger-Themen 5
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
F Umgang mit referenzierten Objekten bei ArrayList Java Basics - Anfänger-Themen 1
M Löschen von Objekten während Iteration über Liste Java Basics - Anfänger-Themen 9
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
C For schleife mit Array und Objekten Java Basics - Anfänger-Themen 17
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
U Übergabe von Objekten Java Basics - Anfänger-Themen 0
C Werte aus zwei Objekten miteinander vergleichen Java Basics - Anfänger-Themen 3
Joew0815 Interface JSON Objekte aus Java Objekten erzeugen Java Basics - Anfänger-Themen 9
D Sortieren von int Werten von Objekten in einer LinkedList, kann nicht auf int Werte zugreifen Java Basics - Anfänger-Themen 3
E Erste Schritte Sortieren von Objekten in doppelt-verlinkter Liste Java Basics - Anfänger-Themen 9
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
V Grundlegendes Zu Objekten/Klassen Java Basics - Anfänger-Themen 10
S Problem bei Kollision zwischen Array-objekten! Java Basics - Anfänger-Themen 2
C Probleme mit neuen Objekten Java Basics - Anfänger-Themen 3
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
D ID von Objekten in Arraylist Java Basics - Anfänger-Themen 3
B Datentypen Inhalt von Objekten miteinander vergleichen Java Basics - Anfänger-Themen 2
R Erste Schritte Objekte mit anderen Objekten als Inhalt Java Basics - Anfänger-Themen 4
V Frage zum Löschen von Objekten Java Basics - Anfänger-Themen 2
C ArrayList mit Objekten Java Basics - Anfänger-Themen 4
P Mindestangaben beim anlegen von Objekten Java Basics - Anfänger-Themen 4
H Array von Klassen Objekten Java Basics - Anfänger-Themen 6
J Array mit Objekten sortieren Java Basics - Anfänger-Themen 11
J Bilder von Objekten Java Basics - Anfänger-Themen 3
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4
B Methoden auf Objekten Java Basics - Anfänger-Themen 12
D OOP Objekt in mehreren Objekten Java Basics - Anfänger-Themen 3
J Datentypen List - gleiche Einträge bei neuen Objekten Java Basics - Anfänger-Themen 31
R Verschieben eines Arrays aus Objekten Java Basics - Anfänger-Themen 16
M Frage zum Casten von Objekten Java Basics - Anfänger-Themen 5
R Polymorphie Array mit Objekten Java Basics - Anfänger-Themen 9
M sicheres/unsicheres Casten bei Objekten Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben