Java - problemas entre applet y aplicacion

 
Vista:

problemas entre applet y aplicacion

Publicado por julio (2 intervenciones) el 06/09/2006 20:51:32
Gracias de antemano.Estoy haciendo un programa (envio codigo) que dibuja un sencillo grafico utilizando la tecnica del doble buffer. El applet funciona bien, pero me da un error de ejecucion en la linea del objeto image (que es nulo). Porque en el applet me funciona y en la aplicacion no? Muchas gracias.

package prueba;

import java.awt.*;
import javax.swing.*;

public class CGrafico extends JApplet {
Image dobleBuffer;
Graphics miCG;

public void init() {
// Inicializa el doble buffer
dobleBuffer = createImage( 300,300 );// aqui da NullPointerException
miCG = dobleBuffer.getGraphics();

// Construye un área gráfica de trabajo
miCG.setColor( Color.white );
miCG.fillRect( 0,0,300,300 );
resize( 500,450 );
}

public void paint( Graphics g ) {
// Sólo se tiene que presentar la imagen del buffer
g.drawImage( dobleBuffer,0,0,this );
}

public void titulo() {
// Obtiene la fuente de texto actual y la guardamos
Font f = miCG.getFont();
// Seleccionamos otro color y otra fuente para el título
miCG.setColor( Color.blue );
miCG.setFont( new Font( "TimesRoman",Font.BOLD,20 ) );
miCG.drawString( "Ejemplo de Cuadrado",15,50 );
miCG.drawString( "con Círculos",15,70 );
// Recuperamos la fuente original
miCG.setFont( f );
}

public void cuadrado() {
int x,y;

// Seleccionamos otro color para el cuadrado
miCG.setColor( Color.red );

// Dibujamos circulos en los lados horizontales
y = 100;
for( x=100; x <= 200; x+=10 )
{
miCG.drawOval( x,y,20,20 );
miCG.drawOval( x,y+100,20,20 );
}
// Ahora en los verticales
x = 100;
for( y=100; y <= 200; y+=10 )
{
miCG.drawOval( x,y,20,20 );
miCG.drawOval( x+100,y,20,20 );
}
}

public void start() {
// Hace el dibujo off-line
titulo();
cuadrado();
// Ahora muestra la imagen de golpe
repaint();
}


public static void main(String[] args)
{
// codigo look and feel windows
try
{
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");// Aspecto de windows
}
catch (Exception e) { }
//

JFrame ventana = new JFrame("Dibujo de un applet");
CGrafico grafico = new CGrafico();
grafico.init();
ventana.setSize(new Dimension(800,600));
ventana.setResizable(true);
ventana.getContentPane().add(grafico);
ventana.setVisible(true);
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder