[Java] drawImage geht nicht!

03/10/2013 16:15 XxXRichiXxX#1
Hallo,

ich habe ein problem mit drawImage .
Ich habe ein Javaprojekt wo ich einen Test mit drawImage gemacht habe, dort ging alles.
Aber in einer anderen Klasse geht es nicht mehr.
Könnt ihr mir helfen?

Code von dem Projekt wo es funkt.
Code:
public void paint(Graphics g){
		super.paint(g);
		Image image2 = new ImageIcon(getClass().getResource("R.gif")).getImage();
		g.drawImage(image2, 100, 200,null);
	}
Code von dem Projekt wo es nicht funkt.
Code:
public void paint(Graphics g){
		if(g instanceof Graphics2D){
			Graphics2D g2 = (Graphics2D)g;
			g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
		}

		g.drawOval(20, 20, 100, 100);
		g.drawImage(player,4,4,this);
		g.setColor(Color.RED);
		g.drawString("Jaunce2D", 400, 400);
	}
drawString und drawOval geht.

Mfg Richi
03/11/2013 09:34 iWnnaFckMyDad#2
Bisschen vergleichen hätte geholfen :).
Du hast in deiner 2.Klasse kein Image erzeugt, also den "player".

Code:
Image player = new ImageIcon(getClass().getResource("<Name>.<Dateityp>")).getImage();
03/11/2013 12:12 raphaeL0123#3
Du musst die kompetenzen zuerst compilen bevor du die resourcen benutzt
03/12/2013 16:13 Dan[ger]#4
du musst in der überschrieben paint(Graphics g) Methode immer zuerst super.paint(g) aufrufen...
Ich würde den Code dann so schreiben:
Code:
public void paint(Graphics g){
  super.paint(g);
  Graphics2D g2d = (Graphics2D)g;
  g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);   //Brauchst du das überhaupt?
  g2d.drawOval(20, 20, 100, 100);
  g2d.drawImage(player,4,4,this);   //player ist ein Image, dass du außerhalb der Methode definiert hast, oder?
  g2d.setColor(Color.RED);
  g2d.drawString("Jaunce2D", 400, 400);
}