Java - Pequeña duda con figuras Graphics

   
Vista:

Pequeña duda con figuras Graphics

Publicado por Jordi jordidalmaucolell2@hotmail.com (135 intervenciones) el 11/09/2017 11:12:25
Hola gente del foro,
os explico lo que me ha sucedido:
Pues yo feliz de la vida pensando que ya entendía la clase Graphics, hago un código con un KeyListener que hace mover un circulito por la pantalla el cuál deja un rastro detrás de él. Todo bien, lo que me ha echo estallar la mente ha sido cuando he echo un fillRect bastante grande y me he percatado de que el circulito no deja rastro cuando pasa encima del espacio pintado por fillRect... He leído en la documentación de Graphics pero no he visto que hable de ello (mi ingles es malillo por lo que se me puede estar pasando la parte donde lo cuenta, pero a prioris no lo veo). Lo único que se me ocurre es que java al repintar la imagen, tome las figuras pintadas como "objetos" en vez de como imágenes y pinte cada una en su lugar. Esto es contradictorio por el echo de que si fuera así el circulo no dejaría rastro cuando se desplaza por el panel de la ventana...
Estaré atento a cualquier respuesta.
Gracias.
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

Pequeña duda con figuras Graphics

Publicado por Tom (1245 intervenciones) el 11/09/2017 12:45:23
Se te entiende fatal.
Pero ten en cuenta que las cosas se "pintan" en un orden. Como cuando pintas una pared.
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

Pequeña duda con figuras Graphics

Publicado por Jordi (135 intervenciones) el 11/09/2017 13:36:22
Con que deja rastro me refiero al típico primer ejercicio con graphics en el que hay que se sobreescribe paint del panel insertado en el JFrame:
1
2
3
4
5
6
7
@Override
public void paint(Graphics g){
 
g.setColor(Color.blue);
g.fillOval(x, y, 40, 40);
 
}

Revisando el código me he dado cuenta que en paint puse un fillRect() antes de poner el color en azul, por lo que se borra el antiguo Oval. Ahora todo cuadra. Gracias por la ayuda, con lo del orden me has activado la neurona que me tenía bloqueado.
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
Revisar política de publicidad