JScrollPane中的透明JEditorPane在后台JPanel上

Bry*_*eld 4 java swing transparent jeditorpane

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

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

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()中的图形复合" 如果这将解决问题,我想知道如何做到这一点.

cam*_*ckr 5

背景面板类有试图让所有组件非不透明,因此背景将显示通过代码.

编辑:

如果您想使用透明背景,那么您可以查看背景与透明度,以获得问题的解释和几个解决方案.

在这种情况下,BackgroundPane是更容易的解决方案.