【发布时间】:2011-02-01 18:47:03
【问题描述】:
是否可以制作一个具有透明背景的 JFrame 并在其上绘制图像,这样只有图像可见,没有边框或背景?
【问题讨论】:
标签: java transparency jframe background-image
是否可以制作一个具有透明背景的 JFrame 并在其上绘制图像,这样只有图像可见,没有边框或背景?
【问题讨论】:
标签: java transparency jframe background-image
是的,可以通过多种方式实现。这是其中之一:
setUndecorated(true);
setBackground(new Color(1.0f,1.0f,1.0f,0.5f));
Color 构造函数中的第 4 个浮点数(我设置为 0.5f)是 alpha 通道。它可以是 0.0f - 1.0f 取决于您想要的透明度。
【讨论】:
0.5f 替换为0.0f,这对我有用。很好的答案。
参见 Kirill Grouchnikov 的 Translucent and Shaped Swing Windows。
【讨论】:
您也应该使内容窗格透明。
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));
【讨论】:
有可能。
如果您的 JFrame 是局部变量或字段:
myJFrame.setUndecorated(true);
如果你的类扩展了 JFrame:
setUndecorated(true);
【讨论】:
对于 Mac OS X 示例,请参阅 Re-paint problem on translucent frame/panel/component。
【讨论】:
setOpacity(0.50f);//50% 不透明
【讨论】: