Applet Mittelwert von 2 Fließkommazahlen

Christoph veit

Aktives Mitglied
Ich habe einproblem mit dieser Aufgabe :
Entwickeln Sie ein Applet, mit dem sich der Mittelwert zweier Fließkommazahlen berechnen lässt. Die Berechnung soll nach einem Mausklick auf den Button „Rechne Mittelwert“ ausgeführt werden. Eine zweite Schaltfläche „Löschen“ soll alle Eingabefelder zurücksetzen. Die zu entwerfende GUI sehen Sie hier abgebildetBeachten Sie die Eigenschaften des Labels und der beiden Button-Objekte. Programmieren Sie das erforderliche Event-Handling mit den Methoden, die unter dem JDK 1.0 zur Verfügung gestellt wurden.
Java Code:
Java:
        import java.awt.*;
        import java.applet.Applet;
        import java.awt.event.*;
        import java.lang.String;
        public class Mitelwert extends Applet
        {
        Label labText;
        TextField tfZahl1 ,tfZahl2 ,tfAusgabeMitelwert;
        Button bRechneMitelwert,bLöschen;
        Font fntFett ,fntHead ,fntAusgabe ;
        private double zahl1 ,zahl2 , ausgabe ;
        public void init()
        {
        setLayout(null);
         
        fntFett = new Font("SansSerif",1,14);
        fntHead = new Font("SensSerif",1,20);
        fntAusgabe = new Font("Monospaced",0 ,12);
         
        labText = new Label("Das Applet berechnet Mittelwerte");
        labText.setBounds(50,30,600,25);
        labText.setFont(fntFett);
        add(labText);
         
        tfZahl1 = new TextField("");
        tfZahl1.setBounds(50,65,140,25);
        tfZahl1.setFont(fntHead);
        add(tfZahl1);
         
        tfZahl2 = new TextField("");
        tfZahl2.setBounds(210,65,140,25);
        tfZahl2.setFont(fntHead);
        add(tfZahl2);
         
        bRechneMitelwert = new Button(" Rechne Mitelwert");
        bRechneMitelwert.setBounds(135,110,135,25);
        bRechneMitelwert.setFont(fntFett);
        add(bRechneMitelwert);
         
        tfAusgabeMitelwert = new TextField("");
        tfAusgabeMitelwert.setEditable(false);
        tfAusgabeMitelwert.setBounds(135,150,135,25);
        tfAusgabeMitelwert.setFont(fntHead);
        add(tfAusgabeMitelwert);
         
        bLöschen = new Button("Löschen");
        bLöschen.setFont(fntFett);
        bLöschen.setBounds(135,210,135,25);
        add(bLöschen);
        }
        public void clickBerechneMitelwert()
        {
        // hir ist der feler ichfind in niecht
        zahl1 = tfZahl1;
        zahl2 = tfZahl2;
        double[]zahlen = new double[2];
        double[] = zahl1;
        double[] = zahl2;
        ausgabe = zahlen / 2;
        tfAusgabeMitelwert.getText(ausgabe);
        }
        public void clickLöschen()
        {
        tfZahl1.setText("");
        tfZahl2.setText("");
        tfAusgabeMitelwert.setText("");
        }
        public boolean handleEvent (Event e)
        {
        if( e.target == bLöschen && e.id == Event.ACTION_EVENT)
        {
        clickLöschen();
        }
        if(e.target == bRechneMitelwert && e.id == Event.ACTION_EVENT)
        {
        clickBerechneMitelwert();
        }
        return false;
        }
        }


ich würd mich freuen wen mier wer dabei helven kan
 
Zuletzt bearbeitet von einem Moderator:

Khal Drogo

Bekanntes Mitglied
Guten Morgen Christoph veit.

  1. Bring bitte deinen Code in Ordnung! Wenigstens die richtige Anzeige im Forum wäre wünschenswert!
  2. Wieso erstellst du für deine Frage keinen neuen Thread? Die Frage ist hier unpassend.
  3. Überleg doch mal, was du mit
    Java:
    zahl1 = tfZahl1;
    zahl2 = tfZahl2;
    machst! Welche Typen haben zahl1, zahl2 und tfZahl1, tfZahl2?
  4. Wieso legst du anschließend ein Array an? Das brauchst du nicht, zudem benutzt du es falsch.
  5. Mit
    Java:
    tfAusgabeMitelwert.getText(ausgabe);
    wirst du vermutlich nicht das Ergebnis erzielen, das du dir wünschst. Denk nochmal darüber nach.

Ich hoffe, ich konnte ein paar Denkanstöße geben und dir damit helfen.

Mit freundlichen Grüßen
Xelsarion
 
Zuletzt bearbeitet:

Christoph veit

Aktives Mitglied
1 ich weis das der code falsch deswegen wende ich mich ja an diese seite
2 ich habe ein eigne Thread ersteld da hat keiner neh antwort gegen deswegen dachte ich mir ich schreib was in ein anderen Thread
3 ja ok , dei zwei Zahlen wariebeln haben double und ich wiel 2 doubell Zhalen fon den tfZahlen die die man eingiebt übergeben und ausrechnen
4 das mit den Ary ist eine gut überlegun das habe ich schona ausgebesert
5 ich wiel damit bewirken das dei zahl die berechnet wiert dort im tfAusgabe Mitelwert aus gegeben wierd
wie sol ich die Mehtode cklikBerechneMitelwert nun deklarieren das der Compeiler keine felermeldung wierft ?
 

Khal Drogo

Bekanntes Mitglied
  1. Ging es nicht darum, dass der Code falsch ist, sondern dass du ihn nicht ordentlich im Forum hast anzeigen lassen, darum hat sich in der Zwischenzeit ein Moderator gekümmert (Danke an den Mod dafür!)
  2. Hat sich ja jetzt erledigt.
  3. Du versuchst hier Double-Variablen Textfelder zuzuweisen, das geht nicht. Du musst zunächst auf den Inhalt der Felder zugreifen, und diesen, da er vermutlich als String vorliegt, umwandeln. Wie du das machst, solltest du wissen, da du es an anderer Stelle (fälschlicherweise) verwendest.
  4. Wenn du unbedingt ein Array benutzen willst, nur zu, allerdings ist es erstens unnötig und zweitens ist dir offensichtlich nicht bewusst, wie du es richtig benutzt.
  5. Wenn du das Textfeld setzen willst, benutzt du hier den falschen Befehl!

Ich will dir nicht zu nahe treten, aber du solltest vielleicht auch auf deine Rechtschreibung und Grammatik achten. Jedenfalls scheint dir dies möglich zu sein, wie man in deinem ersten Thread erkennen kann.

Mit freundlichen Grüßen
Xelsarion
 

Christoph veit

Aktives Mitglied
Ich weis nicht wie ich denn inhald der Text Felder zugreife und umwadle .
Ich weis auch niecht an welcher stele sie gemeint haben das ich es falsch verwende ,
wen sie mier sagen köten wo were ich ihnen sehr dankbar
 

Khal Drogo

Bekanntes Mitglied
Der Zugriff auf den Inhalt der Felder erfolgt mit
Java:
textfeld.getText();
Das Umwandeln und speichern geht dann mit
Java:
double zahl = Double.parseDouble(textfeld.getText());
.
Du kannst den Text eines Textfelds mit dem Befehl
Java:
textfeld.setText(string anzuzeigenderText);
setzen.

Mit freundlichen Grüßen
Xelsarion
 
Zuletzt bearbeitet:

Christoph veit

Aktives Mitglied
ok danke das war sehr hilvrech , dann nur noch eins das umwaneln in einen string geht gleich wie das umwandeln in einen duoble wert ?
zb so:
Java:
Srtring ausgabe1 = String.preseString(ausgabe );
oder ist das Falsch
 

Joose

Top Contributor
Ja ein Variante ist
Java:
String ausgabe1 = String.parseString(ausgabe);

Eine andere Variante, die wahrscheinlich mehr Einsatz findet (auch wenn sie in bestimmten Situationen unperformant ist)
Java:
String ausgabe1 = "" + ausgabe;
Durch das Verketten wird der Wert von ausgabe "automatisch" zum String umgewandelt und angehängt.
 

Khal Drogo

Bekanntes Mitglied
Java:
String ausgabe1 = ausgabe.toString()
müsste in den meisten Situationen auch einsetzbar sein, oder?

Mit freundlichen Grüßen
Xelsarion
 
Zuletzt bearbeitet:

Joose

Top Contributor
Ja wäre auch einsetzbar, solange es sich nicht um primitive Datentypen handelt.
Außerdem muss man aufpassen das "toString()" von der entsprechenden Klasse wirklich überschrieben ist und nicht einfach die Klasse + Speicheradresse zurückgibt ;)
 

Christoph veit

Aktives Mitglied
Ich habe diesen code 2 mal deie felermeldung
Java:
public void clickBerechneMitelwert()
	{
		tfZahl1.getText();
		tfZahl2.getText();
		double zahl1 = Double.parseDouble(tfZahl1.getText());
		double zahl2 = Double.perseDouble(tfZahl2.getText());
		ausgabe = zahl1 + zahl2 / 2;
		String ausgabe1 = ausgabe.toString(ausgabe);
		tfAusgabeMitelwert.setText(ausgabe1);
}

und der Compeiler wirft 2 felermeldungen
die lauten:
Anhang anzeigen 7316
 

Khal Drogo

Bekanntes Mitglied
Ungültiger Anhang bei mir...

Deine Rechnung solltest du anpassen, es gilt auch in Java "Punkt vor Strich"-Rechnung (Z. 8).
In Zeile 9 benutzt du die toString-Methode falsch, diese nimmt keine Parameter. Am Besten verwendest du einen der Vorschläge von Joose.

Mit freundlichen Grüßen
Xelsarion
 
Zuletzt bearbeitet:

Christoph veit

Aktives Mitglied
Eine Frage het ich noch .
Wen ich die gleiche abfolge der EventHandling Methode in einer start oder paint Methode Schreibe ,
mus ich da einfach ein EventObject erzeugen oder lieg ich da dotal falsch ?
Ich würde mich sehr freuen wen mier da wer helfen kann.
lg Christoph veit
 

Neue Themen


Oben