gpt4 book ai didi

java - 为什么我的 JPanel 在特定尺寸下看起来是灰色的,而在另一个尺寸下却不是?

转载 作者:行者123 更新时间:2023-12-02 04:19:59 25 4
gpt4 key购买 nike

我有一个 JLayeredPane,里面有 2 个 JPanel。

上面的有半透明背景色:

this.setBackground(new Color(0, 0, 0, 150));

现在,当我将此 JPanel 的大小设置为等于框架的大小时 enter image description here `

this.ghostPanel.setSize(width, height);

我的整个 JPanel 变成灰色,但是当我给它高度 - 1 时,它会显示正确的透明 View 。

correct displaying view

this.ghostPanel.setSize(width, height - 1);

我真的不明白为什么会发生这种情况。我很想找到一个有效的解释!提前致谢!

最佳答案

Swing 组件要么不透明,要么透明,Swing 不知道如何绘制具有基于 alpha 的颜色的组件。

通过使用基于 alpha 的颜色,Swing 不知道在组件更新时它应该绘制其下方的组件,因此您会遇到一些奇怪的绘制伪影

相反,使组件透明 (setOpaque(false)),然后重写其 paintComponent 方法并使用 AlphaComposite 填充背景

关于java - 为什么我的 JPanel 在特定尺寸下看起来是灰色的,而在另一个尺寸下却不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32895883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com