我遇到了一个很大的问题。我正在编写具有以下结构的 GUI:
MainFrame(MainPanel(JScrollPane(ContentPanel(Content1,Content2,Content3))))
MainFrame 上还有一个 GlassPane。GlassPane 类中有一个计时器,它大约每 100 毫秒计时一次。
此计时器正在更新 Content1 的 JSlider 的值。JSlider 还有一个更改监听器,它将拇指的当前 X 坐标提供给 GlassPane。这些坐标用于在每个刻度线绘制一条线,如果它改变了。此行跨越 Content1、Content2 和 Content3。
我目前正在尝试通过 this.repaint()、MainPanel.repaint()、this.repaint(Rectangle)、MainPanel.repaint(Rectangle) 更新这些内容。
不幸的是,所有这些方法(甚至 repaint(Rectangle) o0 )都调用了 Content1、Content2 和 Content3 的 paintComponent 方法,从而以某种方式创建了循环重绘。我无法解释这个循环,我已经很绝望了。我会非常感谢任何帮助或建议。
我真的很想给你一些代码,但它太多了。而且我真的不知道什么会有用。
问候,玉米