Moin,
hab hier ein Problem/Frage:
Irgendwie funktioniert das mit dem Double Buffering im Applet nicht.
[highlight=Java]package Tests;
import java.applet.*;
import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Image;
/**
*
* @author #####
*/
public class Applet_Thread extends Applet implements Runnable
{
Thread t;
int i;
String wert, position;
Image offscreenImage;
Graphics offscr;
int w = size().width;
int h = size().height;
public void init()
{
t = new Thread(this);
t.start();
i = 0;
int width = size().width;
int height = size().height;
offscreenImage = createImage(width, height);
offscr = offscreenImage.getGraphics();
}
public void run()
{
while(true)
{
i++;
repaint();
try
{
t.sleep(1000/30);
}
catch(InterruptedException ex) {;}
}
}
public boolean keyDown(Event e, int key)
{
wert = "Wert der Taste = "+key;
return true;
}
public boolean mouseMove(Event e, int x, int y)
{
position = "Position "+"x: "+x+" y: "+y;
return true;
}
public void paint(Graphics g)
{
g.drawString("Schleife = "+i, 20, 20);
g.drawString(position, 20, 60);
g.drawString(wert, 20, 40);
offscr.setColor(Color.white);
offscr.fillRect(0, 0, w, h);
offscr.setColor(Color.white);
offscr.fillArc(0,0,w,h,w,h);
g.drawImage(offscreenImage, 0, 0, this);
}
public void update(Graphics g)
{
paint(g);
}
}[/highlight]
Immer wenn sich die Schleifenanzahl oder die Position der Maus verändert wird (mit drawString dargestellt), kommt es mir nicht so vor als ob es gelöscht und neu dargestellt wird sondern überschrieben/überzeichnet.
Kann mir da jemand weiterhelfen?
hab hier ein Problem/Frage:
Irgendwie funktioniert das mit dem Double Buffering im Applet nicht.
[highlight=Java]package Tests;
import java.applet.*;
import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Image;
/**
*
* @author #####
*/
public class Applet_Thread extends Applet implements Runnable
{
Thread t;
int i;
String wert, position;
Image offscreenImage;
Graphics offscr;
int w = size().width;
int h = size().height;
public void init()
{
t = new Thread(this);
t.start();
i = 0;
int width = size().width;
int height = size().height;
offscreenImage = createImage(width, height);
offscr = offscreenImage.getGraphics();
}
public void run()
{
while(true)
{
i++;
repaint();
try
{
t.sleep(1000/30);
}
catch(InterruptedException ex) {;}
}
}
public boolean keyDown(Event e, int key)
{
wert = "Wert der Taste = "+key;
return true;
}
public boolean mouseMove(Event e, int x, int y)
{
position = "Position "+"x: "+x+" y: "+y;
return true;
}
public void paint(Graphics g)
{
g.drawString("Schleife = "+i, 20, 20);
g.drawString(position, 20, 60);
g.drawString(wert, 20, 40);
offscr.setColor(Color.white);
offscr.fillRect(0, 0, w, h);
offscr.setColor(Color.white);
offscr.fillArc(0,0,w,h,w,h);
g.drawImage(offscreenImage, 0, 0, this);
}
public void update(Graphics g)
{
paint(g);
}
}[/highlight]
Immer wenn sich die Schleifenanzahl oder die Position der Maus verändert wird (mit drawString dargestellt), kommt es mir nicht so vor als ob es gelöscht und neu dargestellt wird sondern überschrieben/überzeichnet.
Kann mir da jemand weiterhelfen?