Durchschnitt berechnen aus zwei Textfeldern

shareking

Mitglied
Hallo Zusammen, ich bin mal wieder auf eure Hilfe angewiesen und ich hoffe ihr könnt mir einiges Erklären.

Und zwar wollte ich eine Applikation schreiben, die den Durchschnitt von 2 eingegeben Werten aus 2 Textfeldern nimmt und mir diese Ausgibt. Er zeigt mir keine Fehler beim kompilieren jedoch kriege ich auch keine Ausgabe wenn ich das über das CMD starte mit "java Mittelwert" Dann erscheint in dem eigentlichen Textfeld folgendes : java.awt.TextField[textfield0,100,150,120x25,text= ,selection=0-0]

Mittelwert:
Java:
import java.awt.*;
import java.awt.event.WindowListener;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;






public class Mittelwert extends Frame implements WindowListener, ActionListener {
   
            public static void main (String [] args) {
            Mittelwert mw = new Mittelwert();
        }
       
    double ausgabe;
   
    // Label deklarieren
    Label labText;
    // Textfeld für die Eingabe + Ausgabe der Zahlen deklarieren
    TextField tfEingabe1, tfEingabe2, tfAusgabe;
    // Button für Berechnen und Löschen deklarieren
    Button bBerechnen, bLoeschen;
    // Schriftarten deklarieren
    Font fntHead, fntAusgabe;
   
    public Mittelwert() {
       
        // Kein Layout setzen
        setLayout(null);
        setSize (320, 230);
        // Schriftart definieren
        fntAusgabe = new Font( "SansSerif", 0, 12 );
        fntHead = new Font( "SansSerif", 1, 12 );
        // dem Fenster der Applikation wird der WindowListener zugeordnet
        addWindowListener(this);
   
       
        // die Komponenten initialisieren
        // *** Label
        // Überschrifttext
        labText = new Label("Dieses Applet berechnet Mittelwerte");
        // Schriftart definieren
        labText.setFont(fntHead);
        //Legt die Koordinaten des Labels fest
        labText.setBounds(40,25,325,25);
        // Das Label wird im Applet hinzugefügt
        add(labText);
       
       
        // *** Textfelder
        // Textfeld Eingabe Links
        tfEingabe1 = new TextField(" ");
        // Schriftart definieren
        tfEingabe1.setFont(fntAusgabe);
        //Legt die Koordinaten von der 1 Eingabe fest
        tfEingabe1.setBounds(40,60,100,25);
        // Die linke Eingabe wird im Applet hinzugefügt
        add(tfEingabe1);
       
        //Textfeld Eingabe Rechts
        tfEingabe2 = new TextField(" ");
        // Schriftart definieren
        tfEingabe2.setFont(fntAusgabe);
        //Legt die Koordinaten von der 2 Eingabe fest
        tfEingabe2.setBounds(180,60,100,25);
        // Die rechte Eingabe wird im Applet hinzugefügt
        add(tfEingabe2);
       
        // Textfeld Ausgabe
        tfAusgabe = new TextField(" ");
        // Schriftart definieren
        tfAusgabe.setFont(fntAusgabe);
        //Legt die Koordinaten von der Ausgabe fest
        tfAusgabe.setBounds(100,150,120,25);
        // Dadurch ist die Textausgabe nicht editierbar
        tfAusgabe.setEditable(false);
        //Die Ausgabe wird im Applet hinzugefügt
        add(tfAusgabe);
       
       
        // *** Buttons
        // Berechnen Button
        bBerechnen = new Button("Rechne Mittelwert");
        // Schriftart definieren
        bBerechnen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Berechnen-Button fest
        bBerechnen.setBounds(100,110,120,25);
        //Der Berechnen-Button wird im Applet hinzugefügt
        add(bBerechnen);
       
        // Löschen Button
        bLoeschen = new Button("Löschen");
        // Schriftart definieren
        bLoeschen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Löschen-Button fest
        bLoeschen.setBounds(100,190,120,25);
        //Der Lösch-Button wird im Applet hinzugefügt
        add(bLoeschen);
       
        // Den 2 Buttons wird der ActionListener zugeordnet
        bBerechnen.addActionListener(this);
        bLoeschen.addActionListener(this);

       
        // Ohne diese Methode wird zwar ein Fenster konstruiert, jedoch nicht angezeigt.
        setVisible(true);
    }
   
        public void bBerechnenClick()
        {
   
            tfEingabe1.getText();
            tfEingabe2.getText();
            double zahl1 = Double.parseDouble(tfEingabe1.getText());
            double zahl2 = Double.parseDouble(tfEingabe2.getText());
            ausgabe = (zahl1 / zahl2);
            String ausgabe = "" + tfAusgabe;
            tfAusgabe.setText(ausgabe);
        }
       
        public void bLoeschenClick()
        {
           
            tfEingabe1.setText(" ");
            tfEingabe2.setText(" ");
            tfAusgabe.setText(" ");
           
        }
           
        public boolean handleEvent (Event e) {
        if (e.target == bBerechnen && e.id == Event.ACTION_EVENT) {
            bBerechnenClick();
        }
        if (e.target == bLoeschen && e.id == Event.ACTION_EVENT) {
            bLoeschenClick();
        }
        return false;
        }
       
       
        // 7 Methoden aus WindowListener
        public void windowClosing (WindowEvent e) {
            dispose();
            System.exit(0);
        }
        public void windowClosed (WindowEvent e) {
        }   
        public void windowOpened (WindowEvent e) {
        }   
        public void windowActivated (WindowEvent e) {
        }
        public void windowDeactivated (WindowEvent e) {
        }
        public void windowIconified (WindowEvent e) {
        }
        public void windowDeiconified (WindowEvent e) {
        }

        // eine Methode aus ActionListener:
        public void actionPerformed(ActionEvent e) {
            if (e.getSource()== bBerechnen) {
                bBerechnenClick();
            }
            if (e.getSource() == bLoeschen) {
                bLoeschenClick();
            }
        }
       
}

Verzeiht die vielen Kommentare im Code, aber die helfen mir als Anfänger noch sehr beim schreiben. Kann es sein das ich ein Fehler in der Methode bBerechnenClick gemacht habe ? Danke euch für eure Hilfe. 🙂
 
Guck dir mal den Teil (aus bBerechnenClick) genauer an und überleg noch mal, was du da machst und was eigentlich passieren sollte:

Java:
ausgabe = (zahl1 / zahl2);
String ausgabe = "" + tfAusgabe;
tfAusgabe.setText(ausgabe);
 
Ja habe meinen Fehler auch gerade gesehen/ gefunden.
Code:
    public void bBerechnenClick()
        {
   
            tfEingabe1.getText();
            tfEingabe2.getText();
            double zahl1 = Double.parseDouble(tfEingabe1.getText());
            double zahl2 = Double.parseDouble(tfEingabe2.getText());
            double ausgabe = (zahl1 + zahl2) / 2d;
            tfAusgabe.setText(String.valueOf(ausgabe));
        }

Kann man das ganze auch ohne den Actionlistener realisieren?!
 
Ich sollte mal den korrigierten Text im ersten Post ändern, den das hatte ich korrigiert. P.s. Bezüglich der ersten Bemerkung von dir : ja ist richtig mir ging es ersteinmal um die korrekte Ausgabe in meinem Textfeld. 😀

So sieht der Text noch richtig aus odeR?
Code:
import java.awt.*;
import java.awt.event.WindowListener;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;






public class Mittelwert extends Frame implements WindowListener, ActionListener {
   
            public static void main (String [] args) {
            Mittelwert mw = new Mittelwert();
        }
       

    // Label deklarieren
    Label labText;
    // Textfeld für die Eingabe + Ausgabe der Zahlen deklarieren
    TextField tfEingabe1, tfEingabe2, tfAusgabe;
    // Button für Berechnen und Löschen deklarieren
    Button bBerechnen, bLoeschen;
    // Schriftarten deklarieren
    Font fntHead, fntAusgabe;
   
    public Mittelwert() {
       
        // Kein Layout setzen
        setLayout(null);
        setSize (320, 230);
        // Schriftart definieren
        fntAusgabe = new Font( "SansSerif", 0, 12 );
        fntHead = new Font( "SansSerif", 1, 12 );
        // dem Fenster der Applikation wird der WindowListener zugeordnet
        addWindowListener(this);
   
       
        // die Komponenten initialisieren
        // *** Label
        // Überschrifttext
        labText = new Label("Dieses Applet berechnet Mittelwerte");
        // Schriftart definieren
        labText.setFont(fntHead);
        //Legt die Koordinaten des Labels fest
        labText.setBounds(40,25,325,25);
        // Das Label wird im Applet hinzugefügt
        add(labText);
       
       
        // *** Textfelder
        // Textfeld Eingabe Links
        tfEingabe1 = new TextField(" ");
        // Schriftart definieren
        tfEingabe1.setFont(fntAusgabe);
        //Legt die Koordinaten von der 1 Eingabe fest
        tfEingabe1.setBounds(40,60,100,25);
        // Die linke Eingabe wird im Applet hinzugefügt
        add(tfEingabe1);
       
        //Textfeld Eingabe Rechts
        tfEingabe2 = new TextField(" ");
        // Schriftart definieren
        tfEingabe2.setFont(fntAusgabe);
        //Legt die Koordinaten von der 2 Eingabe fest
        tfEingabe2.setBounds(180,60,100,25);
        // Die rechte Eingabe wird im Applet hinzugefügt
        add(tfEingabe2);
       
        // Textfeld Ausgabe
        tfAusgabe = new TextField(" ");
        // Schriftart definieren
        tfAusgabe.setFont(fntAusgabe);
        //Legt die Koordinaten von der Ausgabe fest
        tfAusgabe.setBounds(100,150,120,25);
        // Dadurch ist die Textausgabe nicht editierbar
        tfAusgabe.setEditable(false);
        //Die Ausgabe wird im Applet hinzugefügt
        add(tfAusgabe);
       
       
        // *** Buttons
        // Berechnen Button
        bBerechnen = new Button("Rechne Mittelwert");
        // Schriftart definieren
        bBerechnen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Berechnen-Button fest
        bBerechnen.setBounds(100,110,120,25);
        //Der Berechnen-Button wird im Applet hinzugefügt
        add(bBerechnen);
       
        // Löschen Button
        bLoeschen = new Button("Löschen");
        // Schriftart definieren
        bLoeschen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Löschen-Button fest
        bLoeschen.setBounds(100,190,120,25);
        //Der Lösch-Button wird im Applet hinzugefügt
        add(bLoeschen);
       
        // Den 2 Buttons wird der ActionListener zugeordnet
        bBerechnen.addActionListener(this);
        bLoeschen.addActionListener(this);

       
        // Ohne diese Methode wird zwar ein Fenster konstruiert, jedoch nicht angezeigt.
        setVisible(true);
    }
   
        public void bBerechnenClick()
        {
   
            tfEingabe1.getText();
            tfEingabe2.getText();
            double zahl1 = Double.parseDouble(tfEingabe1.getText());
            double zahl2 = Double.parseDouble(tfEingabe2.getText());
            double ausgabe = (zahl1 + zahl2) / 2d;
            tfAusgabe.setText(String.valueOf(ausgabe));
        }
       
        public void bLoeschenClick()
        {
           
            tfEingabe1.setText(" ");
            tfEingabe2.setText(" ");
            tfAusgabe.setText(" ");
           
        }
           
        public boolean handleEvent (Event e) {
        if (e.target == bBerechnen && e.id == Event.ACTION_EVENT) {
            bBerechnenClick();
        }
        if (e.target == bLoeschen && e.id == Event.ACTION_EVENT) {
            bLoeschenClick();
        }
        return false;
        }
       
       
        // 7 Methoden aus WindowListener
        public void windowClosing (WindowEvent e) {
            dispose();
            System.exit(0);
        }
        public void windowClosed (WindowEvent e) {
        }   
        public void windowOpened (WindowEvent e) {
        }   
        public void windowActivated (WindowEvent e) {
        }
        public void windowDeactivated (WindowEvent e) {
        }
        public void windowIconified (WindowEvent e) {
        }
        public void windowDeiconified (WindowEvent e) {
        }

        // eine Methode aus ActionListener:
        public void actionPerformed(ActionEvent e) {
            if (e.getSource()== bBerechnen) {
                bBerechnenClick();
            }
            if (e.getSource() == bLoeschen) {
                bLoeschenClick();
            }
        }
}
 
Code:
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;

public class Mittelwert extends Applet {
   
       

    // Label deklarieren
    Label labText;
    // Textfeld für die Eingabe + Ausgabe der Zahlen deklarieren
    private TextField tfEingabe1, tfEingabe2, tfAusgabe;
    // Button für Berechnen und Löschen deklarieren
    Button bBerechnen, bLoeschen;
    // Schriftarten deklarieren
    Font fntHead, fntAusgabe;
   
    @Overide
    public void init() {
       
        // Kein Layout setzen
        setLayout(null);
        setSize (320, 230);
        // Schriftart definieren
        fntAusgabe = new Font( "SansSerif", 0, 12 );
        fntHead = new Font( "SansSerif", 1, 12 );
        // dem Fenster der Applikation wird der WindowListener zugeordnet
        addWindowListener(this);
   
       
        // die Komponenten initialisieren
        // *** Label
        // Überschrifttext
        labText = new Label("Dieses Applet berechnet Mittelwerte");
        // Schriftart definieren
        labText.setFont(fntHead);
        //Legt die Koordinaten des Labels fest
        labText.setBounds(40,25,325,25);
        // Das Label wird im Applet hinzugefügt
        add(labText);
       
       
        // *** Textfelder
        // Textfeld Eingabe Links
        tfEingabe1 = new TextField(" ");
        // Schriftart definieren
        tfEingabe1.setFont(fntAusgabe);
        //Legt die Koordinaten von der 1 Eingabe fest
        tfEingabe1.setBounds(40,60,100,25);
        // Die linke Eingabe wird im Applet hinzugefügt
        add(tfEingabe1);
       
        //Textfeld Eingabe Rechts
        tfEingabe2 = new TextField(" ");
        // Schriftart definieren
        tfEingabe2.setFont(fntAusgabe);
        //Legt die Koordinaten von der 2 Eingabe fest
        tfEingabe2.setBounds(180,60,100,25);
        // Die rechte Eingabe wird im Applet hinzugefügt
        add(tfEingabe2);
       
        // Textfeld Ausgabe
        tfAusgabe = new TextField(" ");
        // Schriftart definieren
        tfAusgabe.setFont(fntAusgabe);
        //Legt die Koordinaten von der Ausgabe fest
        tfAusgabe.setBounds(100,150,120,25);
        // Dadurch ist die Textausgabe nicht editierbar
        tfAusgabe.setEditable(false);
        //Die Ausgabe wird im Applet hinzugefügt
        add(tfAusgabe);
       
       
        // *** Buttons
        // Berechnen Button
        bBerechnen = new Button("Rechne Mittelwert");
        // Schriftart definieren
        bBerechnen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Berechnen-Button fest
        bBerechnen.setBounds(100,110,120,25);
        //Der Berechnen-Button wird im Applet hinzugefügt
        add(bBerechnen);
       
        // Löschen Button
        bLoeschen = new Button("Löschen");
        // Schriftart definieren
        bLoeschen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Löschen-Button fest
        bLoeschen.setBounds(100,190,120,25);
        //Der Lösch-Button wird im Applet hinzugefügt
        add(bLoeschen);
       

       
        // Ohne diese Methode wird zwar ein Fenster konstruiert, jedoch nicht angezeigt.
        setVisible(true);
    }
   
        public void bBerechnenClick()
        {
   
            tfEingabe1.getText();
            tfEingabe2.getText();
            double zahl1 = Double.parseDouble(tfEingabe1.getText());
            double zahl2 = Double.parseDouble(tfEingabe2.getText());
            double ausgabe = (zahl1 + zahl2) / 2d;
            tfAusgabe.setText(String.valueOf(ausgabe));
        }
       
        public void bLoeschenClick()
        {
           
            tfEingabe1.setText(" ");
            tfEingabe2.setText(" ");
            tfAusgabe.setText(" ");
           
        }
           
        public boolean handleEvent (Event e) {
        if (e.target == bBerechnen && e.id == Event.ACTION_EVENT) {
            bBerechnenClick();
        }
        if (e.target == bLoeschen && e.id == Event.ACTION_EVENT) {
            bLoeschenClick();
        }
        return false;
        }
       
       
   
        }
       
       
       
}

Wenn ich das Ganze nun starte kommt beim kompilieren folgender Fehler:

Mittelwert.java:135 error: class, interface, or enum expected?! Was genau habe ich falsch gemacht? habe lediglich die Listener aus dem Code genommen?! :/
 
Ihr seit meine Rettung danke euch vielmals. Es kamen zwar nachdem ich die letzte Klammer entfernt hatte noch genug Fehlermeldungen hinterher aber die konnte ich beheben 🙂 Der Code ohne die Listener sieht korrekt so aus:

Code:
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;

public class Mittelwert extends java.applet.Applet {
   
       

    // Label deklarieren
    Label labText;
    // Textfeld für die Eingabe + Ausgabe der Zahlen deklarieren
    private TextField tfEingabe1, tfEingabe2, tfAusgabe;
    // Button für Berechnen und Löschen deklarieren
    Button bBerechnen, bLoeschen;
    // Schriftarten deklarieren
    Font fntHead, fntAusgabe;
   

    public void init() {
       
        // Kein Layout setzen
        setLayout(null);
        setSize (320, 230);
        // Schriftart definieren
        fntAusgabe = new Font( "SansSerif", 0, 12 );
        fntHead = new Font( "SansSerif", 1, 12 );
   
       
        // die Komponenten initialisieren
        // *** Label
        // Überschrifttext
        labText = new Label("Dieses Applet berechnet Mittelwerte");
        // Schriftart definieren
        labText.setFont(fntHead);
        //Legt die Koordinaten des Labels fest
        labText.setBounds(40,25,325,25);
        // Das Label wird im Applet hinzugefügt
        add(labText);
       
       
        // *** Textfelder
        // Textfeld Eingabe Links
        tfEingabe1 = new TextField(" ");
        // Schriftart definieren
        tfEingabe1.setFont(fntAusgabe);
        //Legt die Koordinaten von der 1 Eingabe fest
        tfEingabe1.setBounds(40,60,100,25);
        // Die linke Eingabe wird im Applet hinzugefügt
        add(tfEingabe1);
       
        //Textfeld Eingabe Rechts
        tfEingabe2 = new TextField(" ");
        // Schriftart definieren
        tfEingabe2.setFont(fntAusgabe);
        //Legt die Koordinaten von der 2 Eingabe fest
        tfEingabe2.setBounds(180,60,100,25);
        // Die rechte Eingabe wird im Applet hinzugefügt
        add(tfEingabe2);
       
        // Textfeld Ausgabe
        tfAusgabe = new TextField(" ");
        // Schriftart definieren
        tfAusgabe.setFont(fntAusgabe);
        //Legt die Koordinaten von der Ausgabe fest
        tfAusgabe.setBounds(100,150,120,25);
        // Dadurch ist die Textausgabe nicht editierbar
        tfAusgabe.setEditable(false);
        //Die Ausgabe wird im Applet hinzugefügt
        add(tfAusgabe);
       
       
        // *** Buttons
        // Berechnen Button
        bBerechnen = new Button("Rechne Mittelwert");
        // Schriftart definieren
        bBerechnen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Berechnen-Button fest
        bBerechnen.setBounds(100,110,120,25);
        //Der Berechnen-Button wird im Applet hinzugefügt
        add(bBerechnen);
       
        // Löschen Button
        bLoeschen = new Button("Löschen");
        // Schriftart definieren
        bLoeschen.setFont(fntAusgabe);
        //Legt die Koordinaten von dem Löschen-Button fest
        bLoeschen.setBounds(100,190,120,25);
        //Der Lösch-Button wird im Applet hinzugefügt
        add(bLoeschen);
       

       
        // Ohne diese Methode wird zwar ein Fenster konstruiert, jedoch nicht angezeigt.
        setVisible(true);
    }
   
        public void bBerechnenClick()
        {
   
            tfEingabe1.getText();
            tfEingabe2.getText();
            double zahl1 = Double.parseDouble(tfEingabe1.getText());
            double zahl2 = Double.parseDouble(tfEingabe2.getText());
            double ausgabe = (zahl1 + zahl2) / 2d;
            tfAusgabe.setText(String.valueOf(ausgabe));
        }
       
        public void bLoeschenClick()
        {
           
            tfEingabe1.setText(" ");
            tfEingabe2.setText(" ");
            tfAusgabe.setText(" ");
           
        }
           
        public boolean handleEvent (Event e) {
        if (e.target == bBerechnen && e.id == Event.ACTION_EVENT) {
            bBerechnenClick();
        }
        if (e.target == bLoeschen && e.id == Event.ACTION_EVENT) {
            bLoeschenClick();
        }
        return false;
        }
       
       
   
        }

Was ist wenn ich statt einer Event-Handling eine start oder Paintmethode nutze? Unter welchen Vorraussetzungen wird da die Berechnung ausgeführt? Oder liegt da überhaupt ein unterschied vor?!
 
Laut google wird die start-Methode eines applets kann aufgerufen, wenn die Seite mit dem applet das erste mal aufgerufen wird, oder wenn der Benutzer zu ihr zurücknavigiert. Du willst doch sicher nicht, dass nur dann die Anzeige aktualisiert wird?
Und was die paint-methode angeht: hier sollte gar nix berechnet werden, sondern nur gezeichnet.
Sieht für mich aus nach einer Frage zum Thema "ich weiss wie es einfach geht, wills aber kompliziert".
Und gibt es einen Grund, warum du das antiquierte AWT verwenden willst?
 
Hab ein Lernbuch und da sind solche Fragen zu den Basics. Versuche nur zu Verstehen wie diese einzelnen Methoden funktionieren würden. Letzendlich stellt doch die Paint-methode genau das selbe da wie die event-methode oder nicht? Sie "malt" es zwar aber sieht und führt doch eigentlich das selbe aus ?!
 
handleEvent ist nun wirklich Java-Steinzeit bzw. eher die Zeit, als die Trilobiten noch durch den Schlamm der Urmeere gekrochen sind.
Ich würde mir dringend ein aktuelles Lehrbuch besorgen.
Letzendlich stellt doch die Paint-methode genau das selbe da wie die event-methode oder nicht? Sie "malt" es zwar aber sieht und führt doch eigentlich das selbe aus ?!
Diese quasiphilospohische Statement erinnnert mich an meine eigene Programmierer-Anfangszeit.
Zunächst mal ist eine Methoide natürlich eine Methode. Sie kann aufgerufen werden und macht dann irgendwas. Weiterhin gehören sowohl die paint-Methode als auch die handleEvent-Methode zum Thema "Gui". Damit sind die Gemeinsamkeiten zwischen der paint- und der handleEvent-Methode aber schon erschöpft.
Die paint-Methode zeichnet etwas und bekommt zu diesem Zweck eine Instanz von Graphics übergeben. Sie wird automatisch von der Laufzeitumgebung aufgerufen, wenn diese ein Neuzeichnen der Komponente für notwendig hält. Die handleEvent-Methode soll auf einen Event reagieren, den sie übergeben bekommt. Sie wird aufgerufen, wenn ein Event ausgelöst wird. Weiter sach ich da nix zu, weil die Methode seit Java 1.1 bzw. seit knapp 20 Jahren veraltet ist.
 
Die paint-Methode zeichnet etwas und bekommt zu diesem Zweck eine Instanz von Graphics übergeben. Sie wird automatisch von der Laufzeitumgebung aufgerufen, wenn diese ein Neuzeichnen der Komponente für notwendig hält. Die handleEvent-Methode soll auf einen Event reagieren, den sie übergeben bekommt. Sie wird aufgerufen, wenn ein Event ausgelöst wird. Weiter sach ich da nix zu, weil die Methode seit Java 1.1 bzw. seit knapp 20 Jahren veraltet ist.

Was genau meinst du mit Instanz von graphics übergeben. Für mich wird beides gleich dargestellt, das eine "zeichnet" das andere halt nicht erzeugt aber in der Nutzung das selbe. Und ja, ich soll in der Aufgabenstellung mit den Möglichkeiten von Java 1.0 arbeiten damit ich die Basics lerne wie sowas früher umgesetzt wurde.
 
Was genau meinst du mit Instanz von graphics übergeben. Für mich wird beides gleich dargestellt, das eine "zeichnet" das andere halt nicht erzeugt aber in der Nutzung das selbe.
Beide Funktionen werden nicht durch dich aufgerufen, sondern durch dir Umgebung.
handleEvent wird jedes mal aufgerufen, wenn ein Event passiert, zB wenn ein Button geklickt wird -> soll also Events verarbeiten, stellt aber nichts dar.
Paint wird jedes Mal aufgerufen, wenn das Applet neu gezeichnet wird -> stellt etwas dar, verarbeitet aber nichts..

In der Nutzung sind sie völlig unterschiedlich, ja, man kann beide gleich füllen, die haben aber sonst nur ähnlich viel gemeinsam wie Motor- und Kofferraum beim Auto, in beide kann ich irgendetwas reinstopfen, aber das war's auch schon.

Und ja, ich soll in der Aufgabenstellung mit den Möglichkeiten von Java 1.0 arbeiten damit ich die Basics lerne wie sowas früher umgesetzt wurde.
Das ist ungefähr genauso sinnvoll, wie beim Führerschein erstmal Kutsche fahren zu lernen^^ (oder erstmal aus Feuerstein Werkzeug herzustellen, das sind ja die wirklichen Basics dafür...)
Die Basics haben sich nicht verändert, das sind Datentypen, Programmabläufe etc
Applets sind keine Basics, sondern einfach veraltet und werden nicht mehr benutzt.
 
Vielen Dank für die ausführliche Erklärung 🙂 Ich denke es geht darum sowas mal gesehen zu haben. Heutzutage zeichnet auch keiner mehr Teile von Hand sondern alles per CAD 😀 .. Kann man denn ausgeben das gerade die Event-Methode genutzt/durchgeführt wurde?
 
Macht Sinn , die printline Funktion in die Methode einzufügen. Verständlich danke.
Ich habe mal einwenig im Web rumgestöbert und gesehen einige ebenfalls Probleme mit der Aufgabenstellung hatten.

Was passiert, wenn Sie die gleiche Anweisungsfolge, die Sie zur Mittelwert Berechnung programmiert haben, nicht in einer Event Handling Methode, sondern

a) in der start Methode des Applets
b) in der paint Methode des Applets

Einbauen?
Unter welchen Bedingungen wird die Berechnung ausgeführt?

Woran es bei mir gerade hapert ist, zu verstehen wie das mit der Start und Paint Methode gemeint ist. Verstehe den Sinn der Frage nicht wie das umgesetzt werden soll. Möchte da schon gern selbst drauf kommen, nur steh ich da total auf dem Schlauch (sorry).
 
Ich denke es geht darum sowas mal gesehen zu haben. Heutzutage zeichnet auch keiner mehr Teile von Hand sondern alles per CAD 😀
Naja, vermutlich ist das Buch einfach nur sehr veraltete ^^
Von einem "das hat man vor 20 Jahren so gemacht" hat man halt nicht viel, wenn das heutzutage falsch ist...Das Zeichnen auf Papier ist ja immer noch richtig, anders als das EventHandling hier, was seit langem als "besser nicht mehr benutzen" gekennzeichnet ist 😉


Kann man denn ausgeben das gerade die Event-Methode genutzt/durchgeführt wurde?
Tust du im Prinzip schon, du änderst die Beschriftung der Textfelder
 
Was passiert, wenn Sie die gleiche Anweisungsfolge, die Sie zur Mittelwert Berechnung programmiert haben, nicht in einer Event Handling Methode, sondern

a) in der start Methode des Applets
b) in der paint Methode des Applets
In den Posts #8 und #10 steht ja was zu start- und paint-Methode. Du sollst ja bei der Frage verstehen wann die jeweiligen Methoden aktiviert werden.
 
Aber ich habe die jeweiligen Methoden ja eigentlich gar nicht in Benutzung?! Oder ist vielmehr damit gemeint, wie sich das Ganze verhält wenn ich eine Start / Paint Methode hätte
 
Ich habe mal probiert die BerechnenClicked Methode in die Init zu packen
Code:
    public void init() {
       
   
            tfEingabe1.getText();
            tfEingabe2.getText();
            double zahl1 = Double.parseDouble(tfEingabe1.getText());
            double zahl2 = Double.parseDouble(tfEingabe2.getText());
            double ausgabe = (zahl1 + zahl2) / 2d;
            tfAusgabe.setText(String.valueOf(ausgabe));

Nur sagt mir das Applet dann, Applet wurde nicht initialisiert und zeigt mir nichts an. Oder ist mein Lösungsansatz einfach falsch ?!
 
Oder ist mein Lösungsansatz einfach falsch ?!
Nein. Zitat aus der Api-Dokumentation von Applet:
A subclass of Applet should override this method if it has initialization to perform. [...]
The implementation of this method provided by the Applet class does nothing.
ich weiss nicht, wie eine Applet-Lebenszyklus genau aussieht. Versuche mal, die Textfelder direkt im Kopf der Klasse zu initialisieren und nicht im Konstruktor.
 

Neue Themen


Zurück
Oben