4

如果我移动 JScrollPane 使其位于 JPanel 前面并部分覆盖 JPanel,则 JScrollPane 内部的 JEditorPane 存在绘制问题。它没有正确地重新绘制 JPanel 的背景。因此,当您滚动时,您最终会遇到屏幕绘画问题。

我使用以下方法尝试了重叠 - JScrollPane 内部的 JPanel - JScrollPane 部分覆盖 JPanel 使用 FreeLayout(NetBeans GUI Builder) - JScrollPane 部分覆盖 JPanel 使用 JLayeredPane

JPanel 现在有一个纯色背景,但是一旦我得到纯色背景工作,我就会将它扩展为具有渐变。

如何让 JEditorPane 从 JPanel 引入裁剪的背景?

我正在使用它使其透明jEditorPane.setBackground(new Color(0,0,0,0))

我尝试setOpaque(false)像您对面板一样使用,但如果您对 JEditorPane 执行此操作,那似乎只是恢复了默认背景。

同事提出的原始问题: https ://stackoverflow.com/questions/6364460/jframe-screen-paint-issues-when-using-transparency

最初的问题写得不太好,似乎没有带来好的答案。

对同事问题建议的回应:

  • “尝试使用 setOpaque(false); 而不是 setBackground(new Color(0,0,0,0));” 没有解决问题。
  • “尝试在pack()之后添加validate()”并没有解决问题。
  • “在 JViewport 上绘制背景图像”不起作用,因为背景需要延伸到 JScrollView 之外并且还散布在其他组件后面
  • “修改 UI 委托的paint() 中的图形合成”如果这能解决问题,我想知道该怎么做。
4

1 回答 1

5

背景面板类的代码尝试使所有组件不透明,以便背景显示出来。

编辑:

如果您想使用透明背景,那么您可以查看背景透明以了解问题的解释和一些解决方案。

在这种情况下,BackgroundPane 是更简单的解决方案。

于 2011-06-16T17:06:48.663 回答