Oppure

Loading
07/07/09 11:07
redelux
Salve, dovrei cercare di far ruotare delle immagini contenute in delle JLabel. La rotazione avviene correttamente in quanto ho ridefinito il metodo paintComponent di JLabel ed ho utilizzato il metodo rotate di Graphics2D. Il problema è che quando ruoto l'immagine mi vengono tagliati gli spigoli in quanto l'immagine ruotata occupa più spazio di quella originale. L'effetto che vorrei ottenere è quello di far adattare dinamicamente il container in questo caso la Jlabel in funzione della rotazione che imprimo all'immagine oppure fare il contrario ovvero adattare l'immagine ruotata alla dimensione della jLabel. Secondo voi è possibile?
aaa
07/07/09 18:09
tasx
Ciao!!
Non potresti creare un immagine gif animata e poi associarla come icona??

Ciaociao :k::k::k::k:
aaa
07/07/09 18:22
redelux
Magari!!! Le immagini devono ruotare, al trascinamento del mouse. Di ruotare ruotano, il problema è che non so di quanto aumentare, al variare dell'angolo di rotazione, le dimensioni delle JLabel che le contengono. Attualmente selezionando uno spigolo dell'immagine con il mouse e trascinandolo ottengo la rotazione dell'immagine, ma vengono tagliati gli spigoli in quanto la dimensione del contenitore rimane la stessa. Aiutoooo!!:d
aaa
09/07/09 11:00
netarrow
potresti scalare l'immagine con la classe AffineTransform per farla stare giusta dentro la label.
aaa
09/07/09 11:35
redelux
Grazie a tutti ma alla fine ho risolto così:
 int iw = dimensione.width;
        int ih = dimensione.height;
        double cos = Math.abs(Math.cos(rotazione));
        double sin = Math.abs(Math.sin(rotazione));
        double width  = iw*cos + ih*sin;
        double height = ih*cos + iw*sin;
        double x = (getBounds().width  - iw)/2;
        double y = (getBounds().height - ih)/2;
        at.setToTranslation(x, y);

        at.rotate(rotazione, iw/2.0, ih/2.0);
        x = (getBounds().width   - width)/2;
        y = (getBounds().height - height)/2;
        this.setBounds(getBounds().x,getBounds().y,(int)width+1,(int) height+1);

In questo modo il contenitore si adatta esattamente alla dimensione dell'immagine ruotata.

Saluti a tutti e grazie per l'interessamento
aaa