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. :)
 

mrBrown

Super-Moderator
Mitarbeiter
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);
 

shareking

Mitglied
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?!
 

shareking

Mitglied
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. :D

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();
            }
        }
}
 

shareking

Mitglied
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?! :/
 

shareking

Mitglied
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?!
 

Harry Kane

Top Contributor
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?
 

shareking

Mitglied
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 ?!
 

Harry Kane

Top Contributor
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.
 

shareking

Mitglied
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.
 

mrBrown

Super-Moderator
Mitarbeiter
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.
 

shareking

Mitglied
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 :D .. Kann man denn ausgeben das gerade die Event-Methode genutzt/durchgeführt wurde?
 

shareking

Mitglied
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).
 

mrBrown

Super-Moderator
Mitarbeiter
Ich denke es geht darum sowas mal gesehen zu haben. Heutzutage zeichnet auch keiner mehr Teile von Hand sondern alles per CAD :D
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
 

JStein52

Top Contributor
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.
 

shareking

Mitglied
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
 

shareking

Mitglied
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 ?!
 

Harry Kane

Top Contributor
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.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
P Durchschnitt berechnen Java Basics - Anfänger-Themen 15
A Durchschnitt zweier Mengen berechnen Java Basics - Anfänger-Themen 3
B Array Durchschnitt Java Basics - Anfänger-Themen 5
S paarweise Durchschnitt Java Basics - Anfänger-Themen 7
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
G Summen addieren und Durchschnitt bilden Java Basics - Anfänger-Themen 4
B Quicksort mit Durchschnitt als Pivot Java Basics - Anfänger-Themen 1
K Erste Schritte Arrays - Zahlenabfrage und Durchschnitt Java Basics - Anfänger-Themen 1
M Java Array - Durchschnitt Java Basics - Anfänger-Themen 7
Antoras Durchschnitt ist nicht korrekt; Eingaben löschen Java Basics - Anfänger-Themen 7
J Double[] Feld und Durchschnitt Java Basics - Anfänger-Themen 2
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
R Fussballtabellen berechnen Java Basics - Anfänger-Themen 12
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
A Wochentag berechnen Java Basics - Anfänger-Themen 10
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
L Wochentag berechnen Java Basics - Anfänger-Themen 5
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
V Mittelwert berechnen Java Basics - Anfänger-Themen 31

Ähnliche Java Themen

Neue Themen


Oben