栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么此计时器中的Alpha在此Java Swing面板中位于自身之上?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么此计时器中的Alpha在此Java Swing面板中位于自身之上?

this.setBackground(new Color(255, 212, 100, opacity));

摇摆不支持透明背景。

Swing希望组件为:

  1. 不透明-表示组件将在进行自定义绘画之前首先用不透明的颜色重新绘制整个背景,或者
  2. 完全透明-在这种情况下,Swing将先绘制第一个不透明父级组件的背景,然后再进行自定义绘制。

setOpaque(...)
方法用于控制组件的不透明属性。

在任何一种情况下,这都可以确保除去所有绘画瑕疵,并且可以正确完成自定义绘画。

如果要使用透明度,则需要对自己进行自定义绘制以确保清除背景。

面板的自定义绘画为:

JPanel panel = new JPanel(){    protected void paintComponent(Graphics g)    {        g.setColor( getBackground() );        g.fillRect(0, 0, getWidth(), getHeight());        super.paintComponent(g);    }};panel.setOpaque(false); // background of parent will be painted first

使用透明性的每个组件都需要类似的代码。

或者,您可以签出自定义类的Background With
Transparency
,该自定义类可以在将为您完成上述工作的任何组件上使用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号