gpt4 book ai didi

java - 具有透明背景和内容的 JScrollPane

转载 作者:搜寻专家 更新时间:2023-10-31 19:47:26 24 4
gpt4 key购买 nike

在我的应用程序中,我显示了一个弹出对话框来显示大量卡片。我在 JPanel 子类的许多 JLabel 组件中将它们显示为图像。然后,我将该对象放入 JScrollPane 中,以允许水平滚动卡片。

我希望未使用的空间是透明的,背景为深色,以表明它后面的内容已被禁用。我使用 setBackground(new Color(50, 50, 50, 200)) 来实现我想要的外观,但它背后的内容没有重绘,所以我得到了伪影。

这是它的样子:

Artifacting when scrolling

我该如何解决这个问题?如何在滚动时让后面的内容重绘?

提前致谢。

最佳答案

暂时不考虑窗口。

JScrollPane 包含一个 JViewport,然后包含您的内容。因此,您需要将内容 Pane 设置为透明,将视口(viewport)设置为透明,然后将滚动 Pane 设置为透明。

您可以通过在每个容器上使用 setOpaque(false) 来实现这一点。

这将确保重绘管理器现在将通过背景进行绘制。

下一个问题是,Swing 实际上并不支持“半透明”组件(即不透明或透明)。

您可以通过覆盖主要组件的 paintComponent 方法来实现这一点(视口(viewport)上的那个可能就足够了)

关于java - 具有透明背景和内容的 JScrollPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15422854/

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