2011-07-12 108 views
8

如何使JFrame透明?我想讓我的JFrame透明。當我的JFrame處於頂層時,用戶應該會看到背景。如何讓JFrame透明?

+0

的可能重複的[透明的JFrame背景] (http://stackoverflow.com/questions/2533650/transparent-jframe-background) – 2011-07-12 07:47:42

+0

一個簡單的教程 - https://www.youtube.com/watch?v=zecGJfNHPWo – m4heshd

回答

9

如果您對使用受限制的API類沒有任何異議,那麼您可以使用該類的AWTUtilities類和setWindowOpacity()方法執行此操作。 Herehere是如何使用它的教程?而here是使用Java本地訪問的版本。

+0

public static void main(String args []) { java.awt.EventQueue.invo keLater(new Runnable(){ public void run(){ javax.swing.JFrame fr = new NewJFrame(); com.sun.awt.AWTUtilities.setWindowOpacity(fr,0.7f); fr.setVisible(true); } }); } –

+0

您可以將您的代碼發佈爲答案。 –

+0

我不想這樣做,因爲它只是爲了增強您的答案...不知道如何在評論中格式化代碼。 –

11

我找到了另一個解決方案。

設置你的幀的背景顏色

// Set the frame background color to a transparent color 
yourFrameHere.setBackground(new Color(0, 0, 0, 0)); 

並記得設置不透明度關閉的contentPane的(您的JPanel或其它組件)

// turn off opacity of the content pane 
yourContentPaneHere.setOpaque(false); 
+0

我沒有看到'setOpaque()'方法。 – smwikipedia

+0

它是抽象類JComponent的一個方法。 http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setOpaque(boolean) 所以,每個JPanel和其他組件都有這個方法。 – drzymala

+0

這是最好的。去的路! – Zizouz212