Newsgroup: it.comp.java
Titolo: Graphics2D

Ciao a tutti.
Versione breve:
come si possono attaccare insieme il contenuto grafico di un Immagini
(oggetto Image) e di un JPanel in modo da ottenere una sola immagine
composta dall'affiancamente delle due?
Versione lunga:
Ho relaizzato nella mia applicazioncina una semplice area grafica che mostra
un istogramma.
Essa e' composta da due JPanel affiancati; nel primo si visualizza il
grafico e nel secondo la legenda.
All'interno della leggenda ho anche inserito un bottoncino x salvare il
contenuto del grafico.
Per fare cio' non faccio altro che disegnare su un immagine e poi disegnare
sul pannello il contenuto dell'immagine stessa
     public void paint(Graphics g)
    {
          Image current =
this.createImage(this.getWidth(),this.getHeight());
          Graphics2D g2 = (Graphics2D)current.getGraphics();
           ....
           //disegno su g2
           ....
          g.drawImage(current,0,0,null);
    }
La leggenda invece la uso com un pannello normale, in cui ci sono dei
JComponent.
(Tra cui il bottoncino che salva l'immagine della parte grafica.)
Quello che vorrei fare e' riuscire a salvare insieme legenda e istogramma in
una sola immagine.Per fare cio' dovrei riuscire
e a ottenere una Image da un JPanel...come si fa?
E una volta ottenute (si spera!) le due Image, come le unisco?
Grazie tante x la pazienza!
--
"...Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno
sprovveduto che non lo sa e la inventa...".
             Albert Einstein

E una volta ottenute (si spera!) le due Image, come le unisco?
(vedi sopra)
-- 
Ciao
	Fabrizio C.

ascoltando il vento dell'est udii Fabrizio Camera che diceva queste parole
| On Mon, 20 Jan 2003 13:39:35 +0100, Icaro wrote:
|
|| come si possono attaccare insieme il contenuto grafico di un Immagini
|| (oggetto Image) e di un JPanel in modo da ottenere una sola immagine
|| composta dall'affiancamente delle due?
|
| Risposta breve:
| crei una BufferedImage di dimensioni sufficienti, ti assicuri che abbia
uno
| sfondo adeguato (= colori il background), poi ci disegni sopra le due
| immagini alle coordinate opportune.
Ho fatto come hai det6to tu ed ho sostituito Image con BufferedImage, ma che
benefici ne dovrei trarre?
Visto cmq che a me il comportamente sembra lo stesso ho lasciato
BufferedImage in tuo onore! :)
|| All'interno della leggenda ho anche inserito un bottoncino x salvare il
|| contenuto del grafico.
|
| Perché non metterlo altrove ed evitare di "sporcare" la legenda (una g
sola
| ;-)?
Mah...in realta' e' che vista la mia gui quello mi sembrava il posto
migliore...forse magari quando salvo l'immagine nascondero' il bottone,
almeno cosi' si dovrebbe meigliorare l'effetto visivo!
Cmq legenda in italiano = leggenda in inglese! ;-)
| Ad ogni invocazione di paint (meglio comunque fare l'override di
| paintComponent) ridisegni tutto l'istogramma??
| Non sarebbe piů efficiente disegnare su un'immagine invalidandola
| all'occorrenza (resize, cambio dati, ecc.)?
Perche' meglio paintComponent? ho provato e mi e' andato in out of memory
facendo cosi'! O__o
Cmq non ho problemi di lentezza ridisegnado tutto ogni volta...alla fine
sono solo circa15 di grafici ognuno con circa 15 punti per grafo...ninete di
impegnativo!
Ma x curiosita', tu come avresti fatto?
|| Quello che vorrei fare e' riuscire a salvare insieme legenda e istogramma
in
|| una sola immagine.Per fare cio' dovrei riuscire
|| e a ottenere una Image da un JPanel...come si fa?
|
| Chiami paintComponent e paintComponents (non ricordo bene ma ci deve esse
| un mio post: cerca "SShot" nei vecchi) su una "superficie" creata apposta.
Ho visto il tuo post ed alla fine ho fatto come x l'istogramma ovvero ho
disegnato su un oggetto Graphics2D ottenuto da una BufferedImage
e poi ho disegnato quella sull'oggetto Graphics del JPanel...sembra fungere
:)
|| E una volta ottenute (si spera!) le due Image, come le unisco?
|
| (vedi sopra)
Visto! ;)
Grazie mille di tutto.
PS: sai dove potrei trovare un encoder BMP? Quello JPG che uso (import
com.sun.image.codec.jpeg.*) da risultati non molto piacevoli e non riesco a
settarne la qualita' a livelli superiori...o meglio, se lo faccio poi mi da
un errore durante il salcvataggio...mah!

un errore durante il salcvataggio...mah!
Questo, invece, meriterebbe un po' più di... investigazioni. :-)
-- 
Ciao
	Fabrizio C.