Begrenzer Anzahl von paint() ?

rooonny

Mitglied
Hallo,

jetzt habe ich wieder ein Problem 😉

Also ich wollte in meinem GUI 4 Rechtecke zeichnen mit paint(). Allerdings konnte ich dann in die Rechtecke selber keine Buttons machen, da die immer überdeckt waren. Ich habe die Rechtecke auf ein Label zeichnen lassen und dies dann auf meinem Frame platziert... ich hoffe das macht man so xD. Als das mit den Rechtecken leider nicht so ging wegen den Buttons, habe ich mir gedacht ich mach die Rechteck händisch, also mit 4 Linien. Hier kann ich auch wunnderbar die Buttons setzen. Leider hört das alles beim 3. Rechteck auf. Er zeichnet das Rechteck nicht fertig. Es kommt dieser Fehler:

Exception in thread "main" java.lang.NullPointerException
at Tischoron.frameFestlegen(Tischoron.java:140)
at Test.main(Test.java:6)

Ich habe danach bisschen gegooglet und herausgefunden, dass das kommt wenn man es außerhalb platziert und der Platz nicht ausreicht. Was aber nicht sein kann, wenn ich den Quellcode anschaue. Könnte schon sein.. aber ich finde es nicht.

Java:
rechtEckvT1l = new PaintCanvas2(); rechtEckvT1r = new PaintCanvas2(); rechtEckvT2l = new PaintCanvas2(); rechtEckvT2r = new PaintCanvas2(); rechtEckvT3l = new PaintCanvas2(); rechtEckvT3r = new PaintCanvas2(); rechtEckvT4l = new PaintCanvas2(); rechtEckvT4r = new PaintCanvas2();
rechtEckhT1o = new PaintCanvas1(); rechtEckhT1u = new PaintCanvas1(); rechtEckhT2o = new PaintCanvas1(); rechtEckhT2u = new PaintCanvas1(); rechtEckhT3u = new PaintCanvas1(); rechtEckhT3u = new PaintCanvas1(); rechtEckhT4o = new PaintCanvas1(); rechtEckhT4u = new PaintCanvas1();

Hier habe ich dei ganzen verschiedenen Linien erstellt.

Java:
tischGrafik.setLayout(null);
			rechtEckvT1l.setBounds(0,0,5,400);
			rechtEckvT1r.setBounds(240,0,5,400);
			rechtEckhT1o.setBounds(0,0,240,5);
			rechtEckhT1u.setBounds(0,395,240,5);
			rechtEckvT2l.setBounds(300,0,5,400);
			rechtEckvT2r.setBounds(540,0,5,400);
			rechtEckhT2o.setBounds(300,0,240,5);
			rechtEckhT2u.setBounds(300,395,240,5);
			rechtEckvT3l.setBounds(600,0,5,400);
			rechtEckvT3r.setBounds(840,0,5,400);
			rechtEckhT3o.setBounds(1,0,240,5);
			
			
			
			tischGrafik.add(rechtEckvT1l); tischGrafik.add(rechtEckvT1r); tischGrafik.add(rechtEckhT1o); tischGrafik.add(rechtEckhT1u); tischGrafik.add(rechtEckvT2l); tischGrafik.add(rechtEckvT2r); tischGrafik.add(rechtEckhT2o); tischGrafik.add(rechtEckhT2u);
			tischGrafik.add(rechtEckvT3l); tischGrafik.add(rechtEckvT3r); tischGrafik.add(rechtEckhT3o); tischGrafik.add(rechtEckhT3u); tischGrafik.add(rechtEckvT4l); tischGrafik.add(rechtEckvT4r); tischGrafik.add(rechtEckhT2o); tischGrafik.add(rechtEckhT4u);
			
		tischGrafik.setVisible(true);

Da platziere ich sie auf dem Label...

Java:
tischGrafik.setBounds(20, 480, 1400, 500);
f.add(tischGrafik);

und da das Label auf dem Frame.

Der Fehler kommt immer wenn ich die obere Linie des 3. Rechtecks zeichnen möchte.
Also das:
Java:
rechtEckhT3o.setBounds(1,0,240,5);
Wenn ich das weglasse bringt er keinen Fehler.
Was noch verwirrt, also mich 😉, wenn ich die Zeile hinzufüge bringt er den Fehler und zeichnet gar nichts mehr.

Wäre nett wenn ihr euch das anschauen könntet. Danke :toll::toll:
 
Zuletzt bearbeitet:
[...]
Er zeichnet das Rechteck nicht fertig. Es kommt dieser Fehler:

Exception in thread "main" java.lang.NullPointerException
at Tischoron.frameFestlegen(Tischoron.java:140)
at Test.main(Test.java:6)

Ich habe danach bisschen gegooglet und herausgefunden, dass das kommt wenn man es außerhalb platziert und der Platz nicht ausreicht.
Wo willst du diesen Blödsinn gefunden haben, daß eine NPE geschmissen wird, wenn irgendein zu zeichnendes Objekt außerhalb eines Zeichenbereiches gezeichnet wird? Und selbst wenn das stimmen sollte, warum sollte die Exception dann in deinem eigenen Code fliegen, wenn das Zeichnen irgendwo in der paint-Methode passiert?
Die NPE kommt ganz einfach daher, daß du rechtEckhT3o nicht initialisiert hast, dafür aber rechtEckhT3u gleich zweimal.
 
Danke für die Hilfe :applaus:

hab ich echt nicht gesehen. Bekommst natürlich ein Danke!

Ich poste morgen die Seite schreib am Handy und da ist immer doof.

Finde leider nicht wie ich dir danken kann.
 
Zuletzt bearbeitet:

Zurück
Oben