有時候,在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類