Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception)

Flowergirl22

Mitglied
Hallo zusammen,
Zur kurzen Code-erklärung: Ich habe 3 Klassen. In der Klasse Ausgabedatei ist eine Array Liste gespeichert, in der für mich relevante Werte gespeichert sind. Mit den Werten möchte ich in der zweiten Klasse Bild ein Säulendiagramm basteln.
Die sobald die Klasse Ausgabedatei angetriggert wird, wird hier main Methode der Klasse Leinwand aufgerufen und aus dieser soll das Bild erstellt werden

Nun gibt es bei mir Probleme mit der Verknüpfung der Array Liste aus Ausgabedatei mit Bild. Ich habe schon ein Objekt von Ausgabedatei in Bild angelegt und eigentlich auch eine Referenz gebildet durch die Methode setzeBild(), dennoch bekomme ich Nullpointerexecptions. Mit der Klasse Bild stimmt sonst alles, wenn ich statt der ArrayList Werte absolute eingebe.

Ich bin wirklich am verzweifeln und würde mich über eine Antwort riesig freuen!
Anbei die relevanten Codeausschnitte:

Klasse Bild:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Bild extends JPanel
{  
    private Ausgabedatei ausgabedatei;
    public void setzeBild(Ausgabedatei pAusgabedatei)
    {
        this.ausgabedatei = pAusgabedatei;
    }
  
    public void paintComponent(Graphics g)
    {
      super.paintComponent(g);
      this.setBackground(Color.white);
      g.setColor(Color.blue);
      g.fillRect(150,500, 25, -ausgabedatei.EingabewerteAusgeben(0));
     }
}



Klasse Leinwand:
Java:
public class Leinwand
{
    public static void main()
    {
        JFrame f = new JFrame("Titel1");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Bild bild = new Bild();
        f.add(bild);
        f.setSize(1000,700);
        f.setVisible(true);
    }
}
 
Zuletzt bearbeitet:
Wird das nicht automatisch aufgerufen, sobald ich in Leinwand new Bild() sage?
Angenommen ich würde die Methode in Leinwand setzen, was würde ich dann in die Klammern schreiben?
 
Das habe ich auch gedacht, nur sagt er mir dann, dass er die variable pAusgabedatei nicht finden kann.
Wie bekomme ich es jetzt hin, dass ich das Objekt pAusgabedatei, das ich in Bild definiert habe zur Leinwand bekomme?
Muss ich hierfür in Ausgabedatei ein Objekt pAusgabedatei definieren?

Es tut mir wirklich leid wenn das hier basics sind, aber ich bin auch noch blutiger Anfänger 🙁
Java:
public class Leinwand
{
    Bild bild;
    public static void main()
    {
        JFrame f = new JFrame("Titel1");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Bild bild = new Bild();
        bild.setzeBild(pAusgabedatei);
        f.add(bild);
        f.setSize(1000,700);
        f.setVisible(true);
    }
}
 
Das habe ich auch gedacht, nur sagt er mir dann, dass er die variable pAusgabedatei nicht finden kann.

Deine Methode erwartet als Parameter einen Wert vom Typ "Ausgabedatei":

Java:
Bild bild = new Bild();
Ausgabedatei datei = new Ausgabedatei(xxx); //xxx = vermutlich fehlen hier noch Parameter...
bild.setzeBild(datei);
 

Neue Themen


Zurück
Oben