2011-07-12 90 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