Doppelbufferung löst 3 errors aus!

  • Themenstarter nicht_der_erste_Noob
  • Beginndatum
Status
Nicht offen für weitere Antworten.
N

nicht_der_erste_Noob

Gast
Also, hi erstmal.
Ich hab folgendes Problem, wenn ich die übliche doppelbufferung verwende um das bildschirmflackern wegzubekommen erscheinen bei mir folgende 3 error:

BallbewegungDoppel.java:73: incompatible types
found : java.awt.Image
required: Image
dbImage = createImage (this.getSize().width, this.getSize().height);
^
BallbewegungDoppel.java:74: cannot find symbol
symbol : method getGraphics()
location: class Image
dbg = dbImage.getGraphics ();
^
BallbewegungDoppel.java:86: cannot find symbol
symbol : method drawImage(Image,int,int,BallbewegungDoppel)
location: class java.awt.Graphics
g.drawImage (dbImage, 0, 0, this);
^
3 errors

Es ist egal welches doppelbufferungsbeispiel ich austeste immer diesselben 3 Fehler, hier als Beispiel:
von der Seite: http://www.javacooperation.gmxhome.de/BildschirmflackernDeu.html
(erzeugt roten ball der sich von links nach rechts bewegt auf blauen hintergrund)

Code:
import java.applet.*;
import java.awt.*;

public class BallbewegungDoppel extends Applet implements Runnable
{
	// Initialisierung der Variablen
	int x_pos = 10;		// x - Position des Balles
	int y_pos = 100;	// y - Position des Balles
	int radius = 20;	// Radius des Balles

	// Variablen für die Doppelpufferung
	private Image dbImage;
	private Graphics dbg;

	public void init()
	{
		setBackground (Color.blue);
	}

	public void start ()
	{
		// Schaffen eines neuen Threads, in dem das Spiel läuft
		Thread th = new Thread (this);
		// Starten des Threads
		th.start ();
	}

	public void stop()
	{

	}

	public void destroy()
	{

	}

	public void run ()
	{
		// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
		Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

		// Solange true ist läuft der Thread weiter
		while (true)
		{
			// Verändern der x- Koordinate
			x_pos ++;

			// Neuzeichnen des Applets
			repaint();

			try
			{
				// Stoppen des Threads für in Klammern angegebene Millisekunden
				Thread.sleep (20);
			}
			catch (InterruptedException ex)
			{
				// do nothing
			}

			// Zurücksetzen der ThreadPriority auf Maximalwert
			Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
		}
	}

	/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
	public void update (Graphics g)
	{
		// Initialisierung des DoubleBuffers
		if (dbImage == null)
		{
			dbImage = createImage (this.getSize().width, this.getSize().height);
			dbg = dbImage.getGraphics ();
		}

		// Bildschirm im Hintergrund löschen
		dbg.setColor (getBackground ());
		dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

		// Auf gelöschten Hintergrund Vordergrund zeichnen
		dbg.setColor (getForeground());
		paint (dbg);

		// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
		g.drawImage (dbImage, 0, 0, this);
	}

	public void paint (Graphics g)
	{
		g.setColor  (Color.red);

		g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
	}
}
[code=Java]

mfg ich
 
G

Gast

Gast
da ichnet editieren kannmal doppelpost ^^

das interesante ist, dass ich diese error vor ca einen halben Jahr nicht hatte auf denselben rechner und denselber installation
 
S

SlaterB

Gast
der Code geht bei mir ohne Compilerfehler,
wenn ich allerdings im gleichen Package eine Klasse namens Image erstelle,
dann bekomme ich genau diese drei Fehler

also nie eigene Klassen wie Java-Klassen nennen..
 
G

Gast

Gast
DANKE! omg das war echt der Fehler daran hatte ich gar net gedacht, ich hatte ne Datei namens Image.java im selben Ordner ><... und ich frag mich die ganze Zeit wieso keine sau dasselbe Problem hat ...
naja dankö
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben