Paint en applet
Hola a todos. Estoy empezando con Java y tengo un problema al que no le encuentro solucion, por mas que busco por internet. Estoy intentando hacer un
applet que lleva una pequeña aplicacion de dibujo: pintar circulos, poligonos, texto, etc. El problema viene cuando llamo a la funcion paint con el repaint,
porque solo consigo que me dibuje en el frame del applet. Me gustaria que al elegir, por ejemplo, dibujar un circulo, se fuera dibujando en un panel superpuesto
(un jpanel, a ser posible transparente) y que con paint fuera cambiando el dibujo de tamaño redibujando la ventana. Cuando se soltase el raton, que ese dibujo me
lo pasara al frame del applet. Asi en el frame del applet, no perderia los dibujos. He intentado crear paneles y colocarlos centrados, pero me dibuja por debajo.
He intentado usar tambien un canvas, pero tampoco he conseguido nada. Espero haberme explicado bien. Agradeceria un empujoncito, gracias.
applet que lleva una pequeña aplicacion de dibujo: pintar circulos, poligonos, texto, etc. El problema viene cuando llamo a la funcion paint con el repaint,
porque solo consigo que me dibuje en el frame del applet. Me gustaria que al elegir, por ejemplo, dibujar un circulo, se fuera dibujando en un panel superpuesto
(un jpanel, a ser posible transparente) y que con paint fuera cambiando el dibujo de tamaño redibujando la ventana. Cuando se soltase el raton, que ese dibujo me
lo pasara al frame del applet. Asi en el frame del applet, no perderia los dibujos. He intentado crear paneles y colocarlos centrados, pero me dibuja por debajo.
He intentado usar tambien un canvas, pero tampoco he conseguido nada. Espero haberme explicado bien. Agradeceria un empujoncito, gracias.
Intenta dibujar en dos BufferedImage (areas de dibujo en memoria).
En el primero tiene el dibujo que ya tienes fijo en pantalla. En el segundo tienes el circulo que va cambiando del tamaño y además haces que salvo el circulo, el resto de los pixels son tranparentes.
El BufferedImage tiene una forma de obtener un Graphics2D para dibujar en el y este a su vez permite dibujar con varios niveles de transparencia, poner el fondo tranparente, etc.
Una vez que tengas en dos BufferedImage lo que quieres, dibujalos en el canvas o componente que tengas, dejando el transparente para el final.
No se si me he aclarado ...
Se bueno.
En el primero tiene el dibujo que ya tienes fijo en pantalla. En el segundo tienes el circulo que va cambiando del tamaño y además haces que salvo el circulo, el resto de los pixels son tranparentes.
El BufferedImage tiene una forma de obtener un Graphics2D para dibujar en el y este a su vez permite dibujar con varios niveles de transparencia, poner el fondo tranparente, etc.
Una vez que tengas en dos BufferedImage lo que quieres, dibujalos en el canvas o componente que tengas, dejando el transparente para el final.
No se si me he aclarado ...
Se bueno.