透明的JFrame背景

9

是否可以创建一个具有透明背景并在其上绘制图像的JFrame,以便只有图像可见,没有边框或背景?

6个回答

15

是的,有很多方法可以实现。以下是其中一种方法:

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

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


当我将0.5f替换为0.0f时,这对我有用。好答案。 - Hasitha Jayawardana

11

8
链接已失效。谷歌建议查看这篇博客文章:http://www.pushing-pixels.org/2008/02/27/translucent-and-shaped-windows-in-core-java.html。 - Mark Peschel

4

你应该将内容面板也设置为透明。

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));

1

这是可能的。

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

myJFrame.setUndecorated(true);

如果您的类扩展JFrame:
setUndecorated(true);

2
自JDK7以来,透明度仅支持未装饰的框架。调用方法应该是基本知识,哈哈 :-) - kleopatra

0

0

setOpacity(0.50f);//50%不透明


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接