2010-03-28 182 views
6

是否有可能使JFrame具有透明背景并在其上绘制图像,因此只有图像在没有边框或背景的情况下可见?透明JFrame背景

回答

9

参见Kirill Grouchnikov的Translucent and Shaped Swing Windows

+0

链接现已停止。谷歌建议这个博客文章:http://www.pushing-pixels.org/2008/02/27/translucent-and-shaped-windows-in-core-java.html – 2018-03-04 20:59:50

0

这是可能的。

如果你的JFrame是一个局部变量或字段:

myJFrame.setUndecorated(true); 

如果你的类扩展JFrame中:

setUndecorated(true); 
+1

是真的,因为jdk7,透明度只支持未修饰的框架。如何调用方法应该是基本知识,尽管:-) – kleopatra 2012-10-21 09:19:21

9

是的,它可能在很多方面。这是其中之一:

setUndecorated(true); 
setBackground(new Color(1.0f,1.0f,1.0f,0.5f)); 

Color的构造函数中的第4个浮点数(我设置为0.5f)是alpha通道。它可以是0.0f - 1.0f取决于你想要的透明度。

1

您应该使内容窗格透明。

frame.setUndecorated(true); 
frame.getContentPane().setBackground(new Color(1.0f,1.0f,1.0f,0.0f)); 
frame.setBackground(new Color(1.0f,1.0f,1.0f,0.0f));