doble buffer
Publicado por jLogia (2 intervenciones) el 25/07/2006 20:11:33
ayuda por favor estoy haciendo que un dibujo se mueva utilizando la tecnica del doble buffer, pero nada mas inicializar el entorno grafico me salta a la excepcion NullPointerException y no se por qué Muchas Gracias (envio codigo)
package dBuffer4;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class DobleBuffer extends JFrame implements Runnable
{
Image image1;
Thread thread1;
Graphics graphics;
int loop = 0;
boolean go = true;
DobleBuffer()
{
try
{
image1 = createImage(100, 100);
graphics = image1.getGraphics();// aqui me salta la excepcion
}
catch(Exception e)
{
e.printStackTrace();
System.out.print("Excepcion alcanzada en ");
}
thread1 = new Thread(this);
thread1.start();
}
public void run()
{
while(go)
{
repaint();
try
{
Thread.sleep(100);
}
catch(InterruptedException iEx)
{
}
}
}
public void paint (Graphics g)
{
loop += 5;
if(loop >=100)
loop = 5;
graphics.setColor(new Color(255,255,255));
graphics.fillRect(0,0,100,100);
graphics.setColor(new Color(0,0,0));
graphics.drawRect(0,0,loop,loop);
g.drawImage(image1,10,10,this);
}
public static void main (String args[])
{
new DobleBuffer();
}
}
package dBuffer4;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class DobleBuffer extends JFrame implements Runnable
{
Image image1;
Thread thread1;
Graphics graphics;
int loop = 0;
boolean go = true;
DobleBuffer()
{
try
{
image1 = createImage(100, 100);
graphics = image1.getGraphics();// aqui me salta la excepcion
}
catch(Exception e)
{
e.printStackTrace();
System.out.print("Excepcion alcanzada en ");
}
thread1 = new Thread(this);
thread1.start();
}
public void run()
{
while(go)
{
repaint();
try
{
Thread.sleep(100);
}
catch(InterruptedException iEx)
{
}
}
}
public void paint (Graphics g)
{
loop += 5;
if(loop >=100)
loop = 5;
graphics.setColor(new Color(255,255,255));
graphics.fillRect(0,0,100,100);
graphics.setColor(new Color(0,0,0));
graphics.drawRect(0,0,loop,loop);
g.drawImage(image1,10,10,this);
}
public static void main (String args[])
{
new DobleBuffer();
}
}
Valora esta pregunta


0