Java Textfeldinhalte vergleichen/entnehmen?

FAN4TIC

Lt. Commander
Registriert
Nov. 2007
Beiträge
1.738
Hallo zusammen.

ich soll fürn Info-unterricht ein Programm schreiben welches Brüche ausrechnet.
Das Konzept ist folgendes:


tFeld1 tFeld3 tFeld5
--------- + ----------- = -----------
tFeld2 tFeld4 tFeld6

(alle Felder sind Textfelder. Gehört zu den Vorgaben.)

Ich wollte ersteinmal Textfeld2 und Textfeld4 vergleichen ob beide Nennern gleich sind.
Also mit einer If-Anweisung.

Nur weiß ich jedoch nicht, wie ich das genau amchen soll.
Wie kann ich denn die 2 Felder vergleichen ?

Die genaue Syntax wie ich Textfelder vergleiche kenn ich leider nicht, daher wäre etwas unterstützung nett.
 
Hallo,

entweder du läßt dir den String aus den Textfeldern mit tFeld1.getText().trim() zurück geben und vergleicht die Strings mit der equals() Methode, oder du castest den String in ein Integer int i = Integer.valueOf(text); und vergleichst dann die Integers mit dem Vergleichsoperator ==
 
Du willst das if wahrscheinlich machen, weil du bei gleichem Nenner die Brüche addieren darfst, oder?
Dann frag ich mal vorweg: Was machst du denn, wenn sie nicht gleich sind?

Das gute ist nämlich: Wenn du den Fall "ungleich" löst, wird der Fall "Nenner sind gleich" mit abgedeckt und kann genau so behandelt werden. Du musst das also nicht unterscheiden sondern nur den "ungleich" Fall lösen.

Schreibs dir am besten man auf einem Blatt Papier hin. Wie würdest du
1/2 + 3/5 lösen?
Ohne jetzt alles verraten zu wollen..
Das Stichwort heißt Erweitern und führt zu einer (ungekürzten) Lösung

@ darkd0g
Gings nicht um Java anstatt Javascript?
 
Zuletzt bearbeitet:
@knuddlmuddl:

wenn ich 1/2+ 3/5 haben würde, würde ich den selben Nenner suchen.
Das einfachste wäre wenn ich die beiden nenner multipliziere und die Zähler dementsprechend anpassen.
-

Ich könnte doch eig. auch direkt die beiden Nenner multiplizieren und den Bruch so ausrechnen lassen?
Das wäre die faule version aber die aufgabe wäre auch gelöst.
Nur hätte ich da das problem, zu schauen wie ich das gekürzt kriege.
 
Jo genau
Jeweils mit dem anderen Nenner erweitern macht die Nenner der beiden Brüche immer gleichnamig so, dass du einfach die Zähler addieren darfst

Das Problem mit dem Kürzen stellt sich in jedem Fall. Von daher ist die "faule" Lösung voll ok ;)

Zum Kürzen:
Stichwort ggT
 
Zuletzt bearbeitet:
so:
irgendwie hab ich ein problem mit dem AUslesen des Textes.

Und zwar:
PHP:
import sum.komponenten.*;
import sum.werkzeuge.*;
import sum.ereignis.*;

public class SuMAnwendung extends EBAnwendung
{
    
    private Knopf hatKnopf1;
    private Knopf hatKnopf2;
    private Knopf hatKnopfX;
    private Knopf hatKnopf4;
    private Textfeld hatTextfeldZahler1;
    private Textfeld hatTextfeldNenner1;
    private Textfeld hatTextfeldZahler2;
    private Textfeld hatTextfeldNenner2;
    private Textfeld hatTextfeldZahler3;
    private Textfeld hatTextfeldNenner3;
    private Etikett hatEtikett1;
    private Etikett hatEtikett2;
    private Etikett hatEtikett3;
    private Etikett hatEtikett4;
    private Etikett hatEtikettBruchrechnung;
    private Knopf hatKnopfEnde;

    // Attribute


    public SuMAnwendung()
    {
        //Initialisierung der Oberklasse
        super(1059, 924);

        
        hatKnopf1 = new Knopf(247, 174, 65, 25, "+");
        hatKnopf1.setzeBearbeiterGeklickt("hatKnopf1Geklickt");
        hatKnopf2 = new Knopf(247, 199, 65, 25, "-");
        hatKnopf2.setzeBearbeiterGeklickt("hatKnopf2Geklickt");
        hatKnopfX = new Knopf(247, 223, 63, 25, "x");
        hatKnopfX.setzeBearbeiterGeklickt("hatKnopfXGeklickt");
        hatKnopf4 = new Knopf(247, 247, 64, 26, ":");
        hatKnopf4.setzeBearbeiterGeklickt("hatKnopf4Geklickt");
        hatTextfeldZahler1 = new Textfeld(99, 177, 100, 25, "");
        // Ausrichtung
        hatTextfeldZahler1.setzeAusrichtung(Ausrichtung.LINKS);
        hatTextfeldNenner1 = new Textfeld(99, 228, 100, 25, "");
        // Ausrichtung
        hatTextfeldNenner1.setzeAusrichtung(Ausrichtung.LINKS);
        hatTextfeldZahler2 = new Textfeld(354, 177, 100, 25, "");
        // Ausrichtung
        hatTextfeldZahler2.setzeAusrichtung(Ausrichtung.LINKS);
        hatTextfeldNenner2 = new Textfeld(354, 229, 100, 25, "");
        // Ausrichtung
        hatTextfeldNenner2.setzeAusrichtung(Ausrichtung.LINKS);
        hatTextfeldZahler3 = new Textfeld(545, 177, 100, 25, "");
        // Ausrichtung
        hatTextfeldZahler3.setzeAusrichtung(Ausrichtung.LINKS);
        hatTextfeldNenner3 = new Textfeld(545, 230, 100, 25, "");
        // Ausrichtung
        hatTextfeldNenner3.setzeAusrichtung(Ausrichtung.LINKS);
        hatEtikett1 = new Etikett(99, 203, 100, 25, "------------------------");
        // Ausrichtung
        hatEtikett1.setzeAusrichtung(Ausrichtung.LINKS);
        hatEtikett2 = new Etikett(354, 203, 100, 25, "-----------------------");
        // Ausrichtung
        hatEtikett2.setzeAusrichtung(Ausrichtung.LINKS);
        hatEtikett3 = new Etikett(546, 203, 100, 25, "-----------------------");
        // Ausrichtung
        hatEtikett3.setzeAusrichtung(Ausrichtung.LINKS);
        hatEtikett4 = new Etikett(467, 203, 60, 25, "=");
        // Ausrichtung
        hatEtikett4.setzeAusrichtung(Ausrichtung.MITTE);
        hatEtikettBruchrechnung = new Etikett(423, 23, 100, 25, "Bruchrechnung");
        // Ausrichtung
        hatEtikettBruchrechnung.setzeAusrichtung(Ausrichtung.LINKS);
        hatKnopfEnde = new Knopf(83, 425, 100, 25, "ENDE");
        hatKnopfEnde.setzeBearbeiterGeklickt("hatKnopfEndeGeklickt");
    }


    public void hatKnopf1Geklickt(String text)
    {
      
      text= TextfeldZahler1.getText();
      
        
    }


    public void hatKnopf2Geklickt()
    {
        
    }


    public void hatKnopfXGeklickt()
    {
        
    }


    public void hatKnopf4Geklickt()
    {
        
    }


    public void hatKnopfEndeGeklickt()
    {
      
    }

}


So mein problem:

public void hatKnopf1Geklickt(String text)
Das programm nimmt die zeile darutner nicht an:
also ich kann den text nicht auslesen.
"cannot find symbol. Variable TextfeldZaehler1" ist die Fehlermeldung

Ich find meinen Fehler gerade nicht.
Könnt ihr mir helfen`?
 
"hatTextfeldZahler1" vielleicht? ^^

btw sind die Namen schrott. Nicht nur, dass es von "schlechtem Stil" zeugt, es ist einfach unübersichtlich (Nummern sind in anderen Sprachen gar nicht in den Namen reinhaubar).
Und "hat"? Das klingt meiner Meinung nach wie irgendeine Methode, die ein Boolean zurückgibt. Und du merkst vor allem selber an dem Fehler wie blöd die Namensgebung ist. ^^
 
ja leider muss ich solch einen namen nutzen.
Das ist so von der Schule vorgegeben, damit die anderen aus meinem kurs das verstehen.
 
public void hatKnopf1Geklickt(String text)
{
text= hatTextfeldZahler1.getText();
}

Da sagt mir BlueJ nur:
cannot find symbol: -method getText()
Bibliotheken usw. sind eingebunden.
 
Zuletzt bearbeitet:
Zurück
Oben