使用来自sun的this文章。我正在尝试创建一个透明的窗口。
我在框架的标签里有一张图片。我希望图像是可见的,但框架是不可见的。
当我使用
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();
}它使得一切都是透明的,使得组件不透明成为可能。
发布于 2009-07-29 16:54:57
您可以尝试只设置alpha通道为您的框架的背景颜色,这不应该下降到组件。
window.setBackground(new Color(1.0, 1.0, 1.0, 0.25));应该会给你一个白色透明的窗口。
发布于 2010-12-01 11:56:41
您仍然可以使用AWTUtilities类,但不要使用setWindowOpacity() setWindowOpaque()来设置不透明度。这将关闭窗口的背景,但在窗口内绘制的任何内容仍将像以前一样绘制。在最近的Java6更新中,这是正确的做法。AWTUtilities可以在苹果电脑和微软视窗系统上运行。在Java7中,这些方法将被转移到java.awt.Window本身。
发布于 2009-07-29 16:59:08
您需要设置子组件的不透明度,例如
childComponent.setOpaque(true);这将使它们不透明,而不会使帧不透明。
https://stackoverflow.com/questions/1201121
复制相似问题