2011-12-11 36 views
5

Quiero usar la API Java 2D para dibujar en un JLabel que ya tiene una imagen y luego guardar la imagen editada resultante.¿Cómo dibujar en un JLabel?

No encuentro ningún tutorial sobre este tema específico, ¿alguien tiene algún código o referencias que demuestren cómo hacerlo?

+1

Dibujar en un JPanel es similar al dibujo en cualquier JComponent como un JPanel. Puede buscar en este foro muchos ejemplos, disparar, muchos de mí, incluido [ejemplo 1] (http://stackoverflow.com/questions/6575578/convert-a-graphics2d-to-an-image-or-bufferedimage/6575620# 6575620), [ejemplo 2] (http://stackoverflow.com/questions/7081308/jpanel-custom-drawing-using-graphics/7081362#7081362), [ejemplo 3] (http://stackoverflow.com/questions/ 6105393/changing-jpanel-graphics-g-color-drawing-line/6105437 # 6105437) –

+0

y [ejemplo 4] (http://stackoverflow.com/questions/7365535/best-to-handle-2-overlaying-live -updated-panels/7366478 # 7366478) –

+0

¡Gracias, voy a leer bien! –

Respuesta

3

Un enfoque sería convertir la imagen existente y el dibujo en BufferedImage, como se muestra en este example que se superpone al texto de un logotipo. Una vez que la imagen esté completa, use ImageIO.write() para guardarla en el formato deseado.

+0

Ese ejemplo es justo lo que necesitaba, ¡gracias! –

4

anula el método paintComponent del JLabel. Primero debe llamar al super.paintComponent, para obtener lo que contiene el JLabel, luego agregue su propio código de dibujo después de eso. Debería verse algo como esto:

public void paintComponent(Graphics g){ 
    super.paintComponent(g) 
    g.drawWhatever ... 
} 
+1

+1 para el enfoque más directo. – trashgod