透明JFrame

时间:2015-09-29 11:42:42

标签: java swing jframe transparency

我有一个包含JPanel的JFrame。我想让框架完全透明,面板稍微透明。

我使用以下代码执行此操作:

frame.setBackground(new Color(0, 0, 0, 0));
panel.setBackground(new Color(51, 51, 51, 190));

实现了所需的效果,但是,当我使用此方法使JFrame透明时,它会扭曲所有其他组件。

以下图片比我可以解释的更好地证明了这一点。

左边是一个没有透明度的示例,文字清晰显示。在右侧,使用上面的代码设置面板和框架,文本失真。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

  

但是,当我使用此方法使JFrame透明时,它会扭曲所有其他组件。

问题是Swing认为组件是不透明的,所以它不会先绘制背景,因此你会得到绘画工件。

结帐Background With Transparency。它有两个简单的解决方案:

  1. 自己画背景
  2. 使用包装容器为您进行绘画