我有一个包含JPanel的JFrame。我想让框架完全透明,面板稍微透明。
我使用以下代码执行此操作:
frame.setBackground(new Color(0, 0, 0, 0));
panel.setBackground(new Color(51, 51, 51, 190));
实现了所需的效果,但是,当我使用此方法使JFrame透明时,它会扭曲所有其他组件。
以下图片比我可以解释的更好地证明了这一点。
左边是一个没有透明度的示例,文字清晰显示。在右侧,使用上面的代码设置面板和框架,文本失真。
我错过了什么?
答案 0 :(得分:2)
但是,当我使用此方法使JFrame透明时,它会扭曲所有其他组件。
问题是Swing认为组件是不透明的,所以它不会先绘制背景,因此你会得到绘画工件。
结帐Background With Transparency。它有两个简单的解决方案: