java - 背景 JPanel 上的 JScrollPane 中的透明 JEditorPane

标签 java swing transparent jeditorpane

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

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

JPanel 现在具有纯色背景,但一旦我获得纯色背景,我就会将其扩展为具有渐变。

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

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

我试过使用 setOpaque(false) 就像您对面板所做的那样,但是如果您对 JEditorPane 这样做,这似乎只是恢复了默认背景。

Original question by a co-worker: 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 委托(delegate)的 paint() 中的图形合成” 如果这能解决问题,我想知道如何去做。

最佳答案

Background Panel类有代码试图使所有组件不透明,这样背景就会显示出来。

编辑:

如果你想玩透明背景那么你可以查看Backgrounds With Transparency问题的解释和几个解决方案。

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

关于java - 背景 JPanel 上的 JScrollPane 中的透明 JEditorPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6375198/

相关文章:

java - 如何在 Java for Windows 中选择和操作不同的音频驱动程序

java - 打印方法中包含的数组中的特定元素

java - JTextPane 正在将其父 Scrollpane 滚动到底部

java - 是否可以使用 java Swing DnD api 在 mousePressed 上开始拖动?

java - JTable 单元格上的 JComboBox

javascript - 添加背景图片时文本区域变为透明

javascript - 如何更改页面滚动的元素样式?

java - 重构 - 除了一个函数调用之外,方法共享相同的代码

c# - 在标签之间切换时执行某些操作?

java - 实现插页式广告;谷歌游戏已经过时了。更新模拟器吗?