import java.awt.AlphaComposite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JPanel;
/**
*
* @author Sonia Toledo -- --3er anho Analisis de sistemas
*/
public class SnPanelTransCircle extends JPanel{
private float transp= 0.5f;//el nivel de transparencia
//si es menos...es mas claro o sea mas transparente
public SnPanelTransCircle(){
//***************constructor**********************//
}
@Override
public void paintBorder(Graphics g){
//si quieres dibujarle un borde puedes llamar a la funcion drawOval(x,y,ancho,alto)..
//g.drawOval(0,0,getSize().width,getSize().height); //a modo de ejemplo
//ESTE BLOQUE ES OPCIONAL
}
//pintar la imagen
@Override
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;//transformar a 2d para permitir transparencia
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
AlphaComposite old = (AlphaComposite) g2.getComposite();
g2.setComposite(AlphaComposite.SrcOver.derive(getTranspValor()));
g2.setColor(this.getBackground()); //eliges el color de fondo..sigue siendo transparente.
g2.fillOval(0, 0,getSize().width-1,getSize().height-1);
g2.setComposite(old);
}
public float getTranspValor() {
return transp;
}
public void setTranspValor(float tran) {
this.transp = tran;
}
}
------------------------------------------------------------------------------>
Para usar el panel..instanciamoss
//este sera un archivo diferente al anterior
public class miVENTANA extends javax.swing.JFrame{
//creamos el objeto de la clase
SnPanelTransCircle panel= new SnPanelTransCircle();//si estan en el mismo paquete o mismo directorio
public miVENTANA(){
super("Panel Transparente -Sn";
this.setLayout(null);
this.setBounds(40,40,400,500);
//EL PANEL POR DEFECTO ES TRANSPARENTE---ASI QUE SI NO LE PONES COLOR NO SE VERA
panel.setBackground(java.awt.Color.red);
panel.setBounds(50,50,300,300);
this.add(panel);
//colocamos una imagen en un jlabel para notar la transparencia
javax.swing.JLabel img=new javax.swing.JLabel();
img.setIcon(new javax.swing.ImageIcon(getClass().getResource("ph01.jpg"));
img.setBounds(50,70,240,320);
add(img);
setVisible(true);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
}//constructor
public static void main(String[] arg){
new miVENTANA();
}//end main
}//end class
ESTO ES TODO OJALA LES HAYA SERVIDO ...hASTA PRontoOO !!

