• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Java: Warum existiert hier noch kein Graphics Object?

Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
im folgenden seht ihr einen Constructor eines normalen awt Frames. Ich erzeuge 10x10 Canvas und will sie mit zufälliger Farbe füllen. Aber aus irgendeinem mir unbegreiflichen Grund ist das Graphicsobjekt schon des ersten Canvas null. Ich verstehs nicht und hoffe einer von euch hat darauf eine gute Antwort. Hier der Code:
Code:
	public FrameUI(){
		this.setLayout(null);
		this.setVisible(true);
		this.setSize(400,400);
		
		int x = 20;
		int y = 20;
		for(Canvas[] fieldinner : fields){
			for(Canvas field : fieldinner){
				field = new Canvas();
				field.setBounds(x++, y++, 1, 1);
				Graphics g = field.getGraphics();
				System.out.println("male feld (" + x + "," + y + "):" + g);
				g.setColor(new Color(getRandom(),getRandom(),getRandom()));
				g.drawRect(0, 0, 1, 1);
				g.setColor(Color.black);
				this.add(field);
			}
		}
	}
 
Mitglied seit
01.06.2007
Beiträge
761
Reaktionen
0
Du musst

this.add(field);

vor den getGraphics() Aufruf packen. Scheinbar "erbt" das Canvas die Graphics-Instanz des Parent-Frames - wenn es keinen Parent/Peer hat gibts die NullPointerException.
 

Bronzegraf

Guest
Davon mal abgesehen, ist der Code ein wenig unlogisch...
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
war auch nur ein Frame um zu zeigen, wie man was nicht macht. das mit dem erben klingt zumindest erstmal logisch. logisch beruhigt :)
 
Oben