Java 6u10 之後引入 com.sun.awt.AWTUtilities.setWindowOpacity 可輕易實作半透明視窗。本文提供最小可執行範例。(注意:此 API 為內部類別,Java 9+ 建議使用 JFrame.setOpacity(float)。)
import javax.swing.JFrame;
public class TranslucentFrame extends JFrame {
public TranslucentFrame() {
// 設定不透明度 0.6 (60%)
com.sun.awt.AWTUtilities.setWindowOpacity(this, 0.6f);
}
public static void main(String[] args) {
TranslucentFrame frame = new TranslucentFrame();
frame.setTitle("半透明視窗");
frame.setSize(400, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Java 7+ 可直接呼叫 setOpacity(0.6f);但需確保視窗為 UNDERLINE 或 TRANSLUCENT 型態:
frame.setBackground(new Color(0, 0, 0, 0)); // 啟用透明背景
frame.setOpacity(0.6f);