首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWTUtilities透明JFrame

AWTUtilities透明JFrame
EN

Stack Overflow用户
提问于 2009-07-29 15:30:07
回答 4查看 9.1K关注 0票数 3

使用来自sun的this文章。我正在尝试创建一个透明的窗口。

我在框架的标签里有一张图片。我希望图像是可见的,但框架是不可见的。

当我使用

代码语言:javascript
复制
try {
   Class awtUtilitiesClass = Class.forName("com.sun.awt.AWTUtilities");
   Method mSetWindowOpacity = awtUtilitiesClass.getMethod("setWindowOpacity", Window.class, float.class);
   mSetWindowOpacity.invoke(null, window, Float.valueOf(0.75f));
} catch (NoSuchMethodException ex) {
   ex.printStackTrace();
} catch (SecurityException ex) {
   ex.printStackTrace();
} catch (ClassNotFoundException ex) {
   ex.printStackTrace();
} catch (IllegalAccessException ex) {
   ex.printStackTrace();
} catch (IllegalArgumentException ex) {
   ex.printStackTrace();
} catch (InvocationTargetException ex) {
   ex.printStackTrace();
}

它使得一切都是透明的,使得组件不透明成为可能。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-07-29 16:54:57

您可以尝试只设置alpha通道为您的框架的背景颜色,这不应该下降到组件。

代码语言:javascript
复制
window.setBackground(new Color(1.0, 1.0, 1.0, 0.25));

应该会给你一个白色透明的窗口。

票数 1
EN

Stack Overflow用户

发布于 2010-12-01 11:56:41

您仍然可以使用AWTUtilities类,但不要使用setWindowOpacity() setWindowOpaque()来设置不透明度。这将关闭窗口的背景,但在窗口内绘制的任何内容仍将像以前一样绘制。在最近的Java6更新中,这是正确的做法。AWTUtilities可以在苹果电脑和微软视窗系统上运行。在Java7中,这些方法将被转移到java.awt.Window本身。

票数 1
EN

Stack Overflow用户

发布于 2009-07-29 16:59:08

您需要设置子组件的不透明度,例如

代码语言:javascript
复制
childComponent.setOpaque(true);

这将使它们不透明,而不会使帧不透明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1201121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档