2011-12-11 16 views
5

Desidero utilizzare l'API Java 2D per disegnare su una JLabel che ha già un'immagine su di essa e quindi salvare l'immagine modificata risultante.Come disegnare su una JLabel?

Non riesco a trovare alcun tutorial su questo argomento specifico, qualcuno ha codice o riferimenti che mostrano come farlo?

+1

disegno in un JPanel è simile al disegno in qualsiasi JComponent come ad esempio un JPanel. Puoi cercare in questo forum molti esempi, spara, molti da me tra cui [esempio 1] (http://stackoverflow.com/questions/6575578/convert-a-graphics2d-to-an-image-or-bufferedimage/6575620# 6575620), [esempio 2] (http://stackoverflow.com/questions/7081308/jpanel-custom-drawing-using-graphics/7081362#7081362), [esempio 3] (http://stackoverflow.com/questions/ 6105393/changing-jpanel-graphics-g-color-drawing-line/6105437 # 6105437) –

+0

e [esempio 4] (http://stackoverflow.com/questions/7365535/best-to-handle-2-overlaying-live -updati-pannelli/7366478 # 7366478) –

+0

Grazie, avrò una buona lettura! –

risposta

3

Un approccio sarebbe quello di rendere l'immagine esistente e il disegno in un BufferedImage, come mostrato in questo example che sovrascrive il testo su un logo. Una volta completata l'immagine, utilizzare ImageIO.write() per salvarlo nel formato desiderato.

+0

Questo esempio è proprio quello di cui avevo bisogno, grazie! –

4

ignora il metodo paintComponent dello JLabel. Dovrebbe prima chiamare lo super.paintComponent, in modo da ottenere quello che contiene JLabel, quindi aggiungere il proprio codice di disegno. Dovrebbe guardare un po 'come questo:

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

+1 per l'approccio più diretto. – trashgod

Problemi correlati