• Miércoles 6 de Noviembre de 2024, 02:27

Autor Tema:  Doble Buffer  (Leído 917 veces)

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Doble Buffer
« en: Sábado 15 de Julio de 2006, 16:02 »
0
Hola:

Estoy intentando hacer una aplicacion que pinta en un Canvas. Sin usar la tecnica del doble buffer la cosa va bien, pero cuando intento introducirla me da el siguiente error en tiempo de ejecucion:

Código: Text
  1.  
  2. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  3.         at Dibujo.paint(MiApp.java:59)
  4.         at sun.awt.RepaintArea.paintComponent(Unknown Source)
  5.         at sun.awt.RepaintArea.paint(Unknown Source)
  6.         at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
  7.         at java.awt.Component.dispatchEventImpl(Unknown Source)
  8.         at java.awt.Component.dispatchEvent(Unknown Source)
  9.         at java.awt.EventQueue.dispatchEvent(Unknown Source)
  10.         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
  11.  
  12.         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
  13.         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  14.         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
  15.         at java.awt.EventDispatchThread.run(Unknown Source)
  16.  
  17.  

Mi codigo:

Código: Text
  1.  
  2. class Dibujo extends Canvas{
  3.  
  4.  Image buffer = null;
  5.  
  6.  public Dibujo(){
  7.   setSize(new Dimension(200, 200));
  8.   buffer = createImage(200, 200);
  9.  }
  10.  
  11.  public void paint(Graphics g){
  12.   Graphics screengc = g;
  13.   g = buffer.getGraphics();   // LINEA 59 del fuente
  14.  
  15.   // Operaciones de dibujo sobre g
  16.  
  17.   screengc.drawImage(buffer, 0, 0, null);
  18.  
  19.  }
  20. }
  21.  
  22.  

Alguien me puede explicar que es lo que pasa (y como arreglarlo)??

Muchas gracias!! Un saludo  :hola: