RE:como hacer un frame transparente?
El código siguiente te permite capturar el escritorio y ponerlo como fondo en un JFrame... Esto produce la impresión de transparencia.
import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentListener;
import java.awt.event.ComponentEvent;
public class TransparentBackground extends JComponent {
private JFrame frame;
private Image background;
public TransparentBackground(JFrame frame) {
this.frame = frame;
updateBackground( );
}
public void updateBackground( ) {
try {
Robot rbt = new Robot( );
Toolkit tk = Toolkit.getDefaultToolkit( );
Dimension dim = tk.getScreenSize( );
background = rbt.createScreenCapture(
new Rectangle(0,0,(int)dim.getWidth( ),
(int)dim.getHeight( )));
} catch (Exception ex) {
ex.printStackTrace( );
}
}
public void paintComponent(Graphics g) {
Point pos = this.getLocationOnScreen( );
Point offset = new Point(-pos.x,-pos.y);
g.drawImage(background,offset.x,offset.y,null);
}
public static void main(String[] args) {
JFrame frame = new JFrame(”Ventana Transparente”);
TransparentBackground bg = new TransparentBackground(frame);
bg.setLayout(new BorderLayout( ));
JButton button = new JButton(”Esto es un boton”);
bg.add(”North”,button);
JLabel label = new JLabel(”Esta es una etiqueta”);
bg.add(”South”,label);
frame.getContentPane( ).add(”Center”,bg);
frame.pack( );
frame.setSize(450,400);
frame.setVisible(true);
}
}