Java - Problema con getgraphics()

 
Vista:

Problema con getgraphics()

Publicado por luis (16 intervenciones) el 16/11/2006 23:22:23
He creado un panel en el que quiero agregar una imagen, para ello accedo a su metodo getGraphics() primero, pero me devuelve un nullpointerexception:

JPanel panel=new JPanel();
panel.setBounds(0,0,100,100);
panel.setVisible(true);
add(panel);
g=panel.getGraphics(); <-------- esta instancia de getGraphics es la que me sale nula
g.createImage(imagen,0,0,panel);
....

a ver si alguie sabe que es lo que ocurre.
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
sin imagen de perfil

RE:Problema con getgraphics()

Publicado por chuidiang (950 intervenciones) el 17/11/2006 05:12:39
Hola:

Me parece raro, pero quizás ocurre porque el panel todavía no está visible en pantalla. Si no metes el JPanel en un JFrame o JDialgo y lo haces visible en pantalla con setVisible() del JFrame o JDialog, es posible que getGraphics() te devuelva null.

De todas formas, la mejor forma de pintar en un panel o cualquier otro componente, es heredar de el y redefinir el metodo paint

public class MiPanel extends JPanel
{
public void paint(Graphics g)
{
g.createImate(....);
....
}
}

El motivo lo tienes en http://www.chuidiang.com/java/graficos/simple/grafico_simple.html

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con getgraphics()

Publicado por luis (16 intervenciones) el 17/11/2006 20:00:46
Pues va a ser lo que dices tu, efectivamente todo va dentro de otro panel que aun no ha sido dibujado en pantalla. gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con getgraphics()

Publicado por Angel Hernandez Gonzalez. (5 intervenciones) el 18/11/2006 02:13:36
a mi me ha pasado, pero lo resuelvo utilizando un objeto graphics de forma local, o sea al momento de dibujar voy a una funcion y ahi declaro el graphics , lo construyes, y ya entonces le asignas el contexto grafico del pnel.

para simplificarme la vida, lo que he hecho a veces es meter la imagen como un imageIcon y meterlo en el constructor del label, y solamente ubicar el label en donde quieres la imagen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar