Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe eine kleine Aufgabe bekommen hab sie versucht, es lässt sich alles kompilieren aber mein Programm geht zu laufzeit hoch ... und ich weiß nicht wieso!
Hier der Code:
(Die Methode reifen() ist in der Klasse Apfel programmiert!)
Java:
public void reifen () {
int erntezahl = 0;
if (erntezahl == 0) {
System.out.println ("Die Früchte sind noch unreif ... es dauert sicher noch lang!");
erntezahl++;
}
else {
if (erntezahl == 1) {
System.out.println ("Die Früchte reifen herran.");
erntezahl++;
}
else {
if (erntezahl == 2) {
System.out.println ("Die Früchte sind reife ... bitte ernten!");
erntezahl++;
}
}
}
}
}
Java:
import javax.swing.*;
import java.awt.event.*;
public class Baumgrafik {
JButton wachsen;
Apfel apfel;
Baumgrafik () {
Apfel apfel = new Apfel();
}
public void erstelleGUI () {
JFrame meinFrame = new JFrame();
wachsen = new JButton ("Wachsen");
wachsen.addActionListener (new Apfellistener());
meinFrame.getContentPane().add(wachsen);
meinFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
meinFrame.setSize (400,500);
meinFrame.setVisible (true);
}
class Apfellistener implements ActionListener {
public void actionPerformed (ActionEvent event) {
apfel.reifen();
}
}
}
Java:
public class Tester {
public static void main (String[] args) {
Tester tester = new Tester();
tester.los();
}
public void los () {
Baumgrafik meineBG = new Baumgrafik();
meineBG.erstelleGUI();
}
}
Was ist hier der fehler? ich will doch nur ein actionEvent das eine methode von einem Objekt aufruft wenn es ausgelöst wird ...
Okay danke erstmal dafür ... passieren immer wieder bei mir diese fehler ...
leider funktioniert die methode jetzt nicht mehr in gewünschter weise ... eigentlich sollte pro drücken erntezahl um eins erhöht werden was nicht der fall ist ...
kann mir jemand eine lösung oder einen tipp vorschlagen?
Im Konstruktor für die Klasse Baum oder so steht dieser Code
Java:
Apfel apfel = new Apfel();
Dadurch, dass du die Variable im Konstruktor neu definierst (Apfel steht davor), "verdeckt" diese Lokale Variable die Globale
--> Das Feld apfel ist nicht erzeugt --> Es wird wahrscheinlich eine NullPointerException werfen
Schreib also einfach im Konstruktor: