lunes, 26 de noviembre de 2007

Crear Un Panel transparente



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:

El codigo fuente para crearlo es package swingec.panel;
Nota la clase JPanelRound la encontramos 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

3 comentarios:

René dijo...

Muy bueno su aporte Ingeniero... Felicitaciones me ayudo mucho...
Quisiera personalizar un JTaskPaneContainer y hacerlo transparente ¿Como lo podria hacer?.... Desde ya gracias por su ayuda...

Unknown dijo...

Muchisimas gracias por su post me será muy útil en la escuela, me agradaría mucho que siguiera haciendo mas tutoriales como este.

Anónimo dijo...

Muy interesante, pero para los que iniciamos en el maravilloso mundo de la programación en Java, se nos complica, he intentado hacer un JFrame transparente pero me manda muchos errores, no se como importar o jalar un archivo rar a mi programa. Bueno si pudieras bajar por un momento tu gran nivel de programación y me explicaras mi duda paso a paso te lo agradecería. Buen año.