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 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);

