我正在尝试创建一个带有项目的可滚动菜单
我希望能够在滚动中绘制自定义背景并在项目中滚动时修复它
来绘制我使用的背景
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(background != null){
background.paintIcon(this,g);
}
}
当我尝试将JScrollBar容器不透明度设置为false时出现问题我得到一个白色背景
你可以看到我希望背景与其他部分的“表面”相同。
知道造成这个问题的原因是什么?
杰森
答案 0 :(得分:4)
一个常见问题。你实际上并没有“看到”JScrollPane,而是JScrollPane的Viewport。您需要在JScrollPane.getViewport()(或类似的东西)上执行所有GUI操作
因此,要使JScrollPane透明,您将使用JScrollPane.getViewport()。setOpaque(false)