Visualizzazione dei risultati da 1 a 4 su 4

Discussione: effetto dissolvenza

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396

    effetto dissolvenza

    Se voglio far vedere una finestra, metto setVible(true), se la voglio nascondere metto (false).
    Se voglio che questa transazione non sia immediata, ma tramite effetto dissolvenza?
    Devo per forza applicare dei thread?
    Se si, come imposto la trasparenza di un'immagine??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Parti da qui, poi usi un Timer che ogni tot missilisecondi aumenta/riduce la trasparenza.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: effetto dissolvenza

    Originariamente inviato da Salinas
    Se voglio far vedere una finestra, metto setVible(true), se la voglio nascondere metto (false).
    Se voglio che questa transazione non sia immediata, ma tramite effetto dissolvenza?
    Devo per forza applicare dei thread?
    Se si, come imposto la trasparenza di un'immagine??
    AWT/Swing non supportano "di serie" la semi-trasparenza (il canale "alpha", per intenderci) per qualunque componente. Questo però non vuol dire che non si possa fare!! Si può .... ma sono cose molto "sofisticate" e che richiedono una solida conoscenza di Swing e Java 2D.

    E per rendere semi-trasparente un componente, la prima cosa da fare è la estensione. Prendiamo es. un JButton che si vuole rendere semi-trasparente. Lo si estende e si fa l'override di paint(Graphics). Non ho sbagliato a scrivere! Generalmente per i componenti Swing si deve fare l'override di paintComponent(Graphics) per il custom painting. Ma qui è una cosa più complessa e "globale" del componente e va quindi fatta "a monte".

    Nel paint() crei una immagine della stessa dimensione del pulsante (meglio se è "compatibile" con lo schermo. Per "compatibile" si intende che il formato del pixel è lo stesso di quello del display grafico). Il paint() (quello "vero" che si può invocare con super) deve disegnare sul Graphics di questa immagine, non sul Graphics del componente.
    In una seconda fase si deve impostare il Graphics2D del componente per usare un AlphaComposite con rule SRC_OVER e un valore alpha 0.0.....1.0. Quindi si disegna sul Graphics del componente la immagine. Il pulsante può quindi risultare semi-trasparente.


    Questa tua domanda, come alcune altre che hai posto di recente, denota che stai cercando di fare qualcosa di molto particolare e "avanzato". Il motivo/necessità reale non lo posso sapere .... ma se vuoi farlo, ti conviene andare molto più a fondo su questi argomenti.

    Esiste un libro (io ce l'ho ) abbastanza recente: Filthy Rich Clients. Vuoi fare applicazioni Swing "fighe" (passatemi il termine, please, non è da intendere in senso volgare)?? Quello è il libro per te!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Grazie delle dritte.
    Ne farò buon uso...
    Alla prossima

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.