java中创建透明窗口,不仅可以达到自定义窗口形状的效果,甚至还可以用于显示动画,今天我来介绍一下如何最简单地创建透明窗口并显示我们的窗口组件。
其完整代码如下:
import java.awt.*;
import javax.swing.*;
public class Gif {
public static void main(String[] args) {
JFrame jf = new JFrame();
jf.setSize(512, 512);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setUndecorated(true);// 窗口去边框
jf.setBackground(new Color(0, 0, 0, 0));// 设置窗口为透明色
// 设置窗口背景
ImageIcon i = new ImageIcon("gif\\1.gif");// 指定图片对象
JLabel imgLabel = new JLabel(i);// 将背景图放在标签里。
jf.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));// 将背景标签添加到jf窗口对象的LayeredPane面板里。
imgLabel.setBounds(0, 0, i.getIconWidth(), i.getIconHeight());// 设置背景标签的位置
Container cp = jf.getContentPane();
cp.setLayout(new BorderLayout());
((JPanel) cp).setOpaque(false);
jf.show();
}
}
这里的重点是:jf.setBackground(new Color(0, 0, 0, 0));
通过JFrame的setBackground()方法,把JFrame窗体对象设置为透明色,实现窗体背景透明。
运行效果: