Hallo bubble, habe mal versucht das was du vorgeschlagen hast umzusetzen. Leider immer noch kein Erfolg.
Hier die Klasse die automatisch erstellt wurde
public class GUI extends JFrame {
int x;
public JPanel contentPane;
public Linien grafik;
Hier deklarierst du die Variable grafik vom Typ Linien als Member von GUI. Mehr nicht! Klein Initialisierung.
> ~~~java
public GUI() {
> /* .... */
> final JPanel panel = new Grafik();
> panel.setBounds(77, 34, 137, 140);
> contentPane.add(panel);
>
Hier deklariest du eine _lokale_ Variable namens panel vom Typ JPanel und erzeugst eine Instanz der Klasse Grafik (vermutlich eine Ableitung von JPanel) UND weist panel diese Instanz zu. Sprich, du initialisierst panel.
Da panel final deklariert wurde, kann ihr kein anderer Wert mehr zugewiesen werden, so lange die Variable, die die Referenz auf die Grafik-Instanz beinhaltet. Dadurch, dass dies aber eine lokale Variable ist, geht sie sowieso, nach dem die Funktion verlassen wurde verloren.
Und genau da wird dein Problem liegen, der Member 'grafik' ist immer noch nicht initialisiert.
Habe mal alles als Final initialisiert.
Wenn man die Tür in der Wand vergessen hat, hilft es einem auch nicht zu sagen, dass man sie nur einmal öffnen kann.
Leider immer noch die NullPointerException bei grafik.d=....
Dann initialisier grafik.
Hier mal ein Beispiel:
class Test {
public Line myline;
public Line anotherLine;
public Test() {
myline = new Line(1);
Line anotherLine = new Line(2);
this.anotherLine = new Line(3);
Line thirdLine = new Line(4);
fourthLine = new Line(4);
}
}
Die Reihenfolge für Variablen ist lokale -> Member.
Fall 1: myline gibt es nicht als lokale Variable, aber als Member, also wird Test.myline beschrieben.
Fall 2: Deklaration von anotherLine als lokale Variable, gibt es aber auch als Member, durch die Reihenfolge, wird aber die lokale anotherLine beschrieben, Test.anotherLine bleibt uninitialisiert.
Fall 3: this stellt das Objekt vom Typ Test dar, somit wird der Member Test.anotherLine direkt angesprochen und beschrieben.
Fall 4: thirdLine wird lokal deklariert, es gibt keinen Member, die lokale Variable thirdLine wird beschrieben.
Fall 5: fourthLine existiert weder lokal, noch als Member. Abbruch wegen unbekanntem Bezeichner 'fourthLine'
Ich hoffe das hilft dir.
MfG
bubble
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye