【问题标题】:JScrollPanel with custom background具有自定义背景的 JScrollPane
【发布时间】:2011-09-10 23:41:50
【问题描述】:

我正在尝试创建一个包含项目的可滚动菜单

我希望能够为滚动绘制自定义背景,并在我在项目之间滚动时修复它

绘制我使用的背景

@Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if(background != null){
            background.paintIcon(this,g);
        }
    }

当我尝试将 JScrollBar 容器不透明度设置为 false 时出现问题,我得到白色背景

如您所见,我希望背景与其他部分具有相同的“表面”。

知道是什么导致了这个问题吗?

杰森

【问题讨论】:

    标签: java swing applet jscrollpane


    【解决方案1】:

    一个常见的问题。您实际上并没有“看到” JScrollPane,而是 JScrollPane 的视口。您需要在 JScrollPane.getViewport() (或类似的东西)上执行所有 GUI 操作

    所以要使 JScrollPane 透明,您可以使用 JScrollPane.getViewport().setOpaque(false)

    【讨论】:

    • 我该怎么办? getViewPort().setOpac(false);
    • 感谢成功。我说这是一个多么愚蠢的错误!!!(你能编辑你的答案只是为了让其他人在阅读这篇文章以寻求帮助时更明显^^_
    • 当然,完成 ;) 这并不是一个真正的错误,因为 JScrollPane 只是一个 Viewport+1 或 2 个滚动条。
    • +1 这是一个相关的example,它用对比色绘制视口和视图。
    猜你喜欢
    • 2012-07-10
    • 1970-01-01
    • 2013-03-03
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多