有时候,在Java中我们会设置窗口的透明度,有第三方方法,但JDK包中自带的也有一种方法:
就是导入com.sun.awt.AWTUtilities
package com.lovemu.snow;
import java.awt.Color;
import javax.swing.JFrame;
import com.sun.awt.AWTUtilities;
public class Alpha extends JFrame {
/**
* @author lovemu
* 透明窗体
*/
private static final long serialVersionUID = 1L;
public Alpha(){
this.setBackground(Color.pink);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(200,100);
this.setTitle("lovemu");
this.setLocationRelativeTo(null);
}
public static void main(String[] args) {
Alpha alpha=new Alpha();
//alpha.setUndecorated(true);//设置是否装饰,即是否去掉标题栏等
AWTUtilities.setWindowOpacity(alpha, 0.6f);//设置透明度
alpha.setVisible(true);
}
}
其中,com.sun.awt.AWTUtilities需要额外导入(以Eclipse为例:):
项目名上右键:
其中,rt.jar来自于D:\Java\jdk1.6.0_10\jre\lib,其中D:\Java为JDK安装目录:
至此,程序中就可以使用该包了..
遗憾的是,加入了该包后,程序就不具有跨平台性了,因为以com.sun/sun开头的是属于非公开/为了实现jre的、没有后续保证,即未包括在发布的JDK中..
如果要具有跨平台性,可以使用第三方jar包,如使用 jna.jar + platform.jar 提供的WindowUtils类