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.
Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception)
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);
}
}
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);
}
}