Rechenproblem

Oetzicool

Erfahrenes Mitglied
Hallo also ich bin grad dabei ein kleines Rechenprogramm zu basteln mit oberfläche! Die Grundstruktur habe ich die zahlen kann ich auch auslesen! Aber beim Ausgeben der Zahl gibts probleme kann mir einer sagen wie man des beheben kann? Danke schonmal!

Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import java.lang.*;
import java.lang.String.*;
public class rechner extends Applet implements ActionListener
{
  String wert1,wert2,wert3,ausgabe;
  float zahl1,zahl2,zahl3,ergebnis;
  Label l1,l2,l3,l4;
  Button b;
  TextField txt1,txt2,txt3;
  
  public void init()
  {
    l1 = new Label("Rechner v1.0");
    l2 = new Label("Absatz:");
    l3 = new Label("Preis:");
    l4 = new Label("Umsatz:");
    b = new Button("Berechnen");
    txt1 = new TextField("");
    txt2 = new TextField("");
    txt3 = new TextField("");
    this.setBackground(Color.white);
    this.setLayout(null);
    
    // Infos schreiben
    l1.setBounds(10,10,75,20);
    l1.setBackground(Color.white);
    this.add(l1);
    l2.setBounds(10,45,75,20);
    l2.setBackground(Color.white);
    this.add(l2);
    l3.setBounds(10,70,75,20);
    l3.setBackground(Color.white);
    this.add(l3);
    l4.setBounds(10,95,75,20);
    l4.setBackground(Color.white);
    this.add(l4);
    
    // Eingabefelder initiieren
    txt1.setBounds(95,45,75,20);
    txt1.setBackground(Color.white);
    this.add(txt1);
    txt2.setBounds(95,70,75,20);
    txt2.setBackground(Color.white);
    this.add(txt2);
    txt3.setBounds(95,95,75,20);
    txt3.setBackground(Color.white);
    this.add(txt3);
    
    b.setBounds(10,230,75,20);
    b.setBackground(Color.lightGray);
    b.addActionListener(this);
    this.add(b);
    
  }

    public void actionPerformed(ActionEvent e)
    {
    wert1 = txt1.getText();
    Float x1 = Float.valueOf(wert1);
    zahl1 = x1.floatValue();
    wert2 = txt2.getText();
    Float x2 = Float.valueOf(wert2);
    zahl2 = x2.floatValue();
    wert3 = txt3.getText();
    Float x3 = Float.valueOf(wert3);
    zahl1 = x3.floatValue();
    ergebnis = zahl1 + zahl2;
    ausgabe = Float.toString(ergebnis);
    txt3.setText(ausgabe);
    }
}
 
Hallo,

Wenn ich die Funktionsweise deines Rechners richtig verstehen soll, bezeichnet Absatz die Menge mit der du Preis multiplizieren möchtest um den Umsatz zu erhalten. Wenn das so ist, besteht dein Fehler darin, das du vom Textfeld t3 auch den Wert ausliest obwohl da zunächst nichts stehen soll. Da soll ja nach der Berechnung das Ergebnis hin.

Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import java.lang.*;
import java.lang.String.*;

public class rechner extends Applet implements ActionListener {
	String wert1, wert2, wert3, ausgabe;

	float zahl1, zahl2, zahl3, ergebnis;

	Label l1, l2, l3, l4;

	Button b;

	TextField txt1, txt2, txt3;

	public void init() {
		l1 = new Label("Rechner v1.0");
		l2 = new Label("Absatz:");
		l3 = new Label("Preis:");
		l4 = new Label("Umsatz:");
		b = new Button("Berechnen");
		txt1 = new TextField("");
		txt2 = new TextField("");
		txt3 = new TextField("");
		setBackground(Color.white);
		setLayout(null);

		// Infos schreiben
		l1.setBounds(10, 10, 75, 20);
		l1.setBackground(Color.white);
		add(l1);
		l2.setBounds(10, 45, 75, 20);
		l2.setBackground(Color.white);
		add(l2);
		l3.setBounds(10, 70, 75, 20);
		l3.setBackground(Color.white);
		add(l3);
		l4.setBounds(10, 95, 75, 20);
		l4.setBackground(Color.white);
		add(l4);

		// Eingabefelder initiieren
		txt1.setBounds(95, 45, 75, 20);
		txt1.setBackground(Color.white);
		add(txt1);
		txt2.setBounds(95, 70, 75, 20);
		txt2.setBackground(Color.white);
		add(txt2);
		txt3.setBounds(95, 95, 75, 20);
		txt3.setBackground(Color.white);
		add(txt3);

		b.setBounds(10, 230, 75, 20);
		b.setBackground(Color.lightGray);
		b.addActionListener(this);
		add(b);
	}

	public void actionPerformed(ActionEvent e) {
		wert1 = txt1.getText();
		Float x1 = Float.valueOf(wert1);
		zahl1 = x1.floatValue();
		wert2 = txt2.getText();
		Float x2 = Float.valueOf(wert2);
		zahl2 = x2.floatValue();
		//wert3 = txt3.getText();
		//Float x3 = Float.valueOf(wert3);
		//zahl1 = x3.floatValue();
		ergebnis = zahl1 * zahl2;
		ausgabe = Float.toString(ergebnis);
		txt3.setText(ausgabe);
	}
}

Vg Erdal
 
Zurück