Max*_*ost 5 java swing transparency paint
在我的应用程序中,我会显示一个弹出对话框,显示大量的卡片.我将它们显示为子类中许多JLabel组件中的图像JPanel.然后我将该对象放入a中JScrollPane以允许水平滚动卡片.
我希望未使用的空间在深色背景下是透明的,以显示它背后的内容被禁用.我曾经setBackground(new Color(50, 50, 50, 200))想要实现我想要的外观,但它背后的内容不会重绘,所以我得到了神器.
这是它的样子:

我该如何解决这个问题?滚动时如何获取其背后的内容重绘?
提前致谢.
将窗口从等式中拉出来.
该JScrollPane包含JViewport然后包含内容你.因此,您需要将内容窗格设置为透明,将视口设置为透明,然后将滚动窗格设置为透明.
您可以通过setOpaque(false)在每个容器上使用来实现此目的.
这将确保重绘管理器现在将在后台绘制.
接下来的问题是,Swing实际上并不支持"半透明"组件(即,它是不透明的或透明的).
你可以通过覆盖paintComponent主要组件的方法来实现这个(视口上的那个可能就足够了)