Edisoncor’s Weblog

Programación en Java desde LOJA

Archivos de la categoría ‘Blogroll’

Crear Un Panel transparente

Publicado por edisoncor en Noviembre 26, 2007

Hola amigos luego de una ausencia(por motivos laborales) estoy de nuevo aqui para escribir un nuevo tema en esta ocaci’on vamos a crea un panel ue va a tener un aspecto semitransparente

El panel va a quedar de esta forma:

Panel Semitranperente

El codigo fuente para crearlo es package swingec.panel;

Nota la clase JPanelRound la podemos ver aqui:

import java.awt.AlphaComposite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

/**
*
* @author Edisoncor
*/
public class JPanelTransparente extends JPanelRound{

    private float tran= 0.8f;
   
    public JPanelTransparente(){
      
    }
   

    @Override
    protected void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        AlphaComposite old = (AlphaComposite) g2.getComposite();
        g2.setComposite(AlphaComposite.SrcOver.derive(getTran()));
        super.paintComponent(g);
        g2.setComposite(old);
    }

    public float getTran() {
        return tran;
    }

    public void setTran(float tran) {
        this.tran = tran;
    }
   
}

Donde la variable tran representa el nivel de transparencia que se desea para el panel, tambien podemos observar 

 AlphaComposite old = (AlphaComposite) g2.getComposite(); que salve la composicion actual del panel, luego
g2.setComposite(AlphaComposite.SrcOver.derive(getTran())); le damos la nueva informacion para el panel, luego se llama a super.paintComponent(g); para que los componentes agregados se dibujen y por ultimo restauramos la composicion  de Graphics con :  g2.setComposite(old);

Publicado en Blogroll, General, NetBeans, Swing | Etiquetado: , , , , | 12 Comentarios »