0

我遇到了一个很大的问题。我正在编写具有以下结构的 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 方法,从而以某种方式创建了循环重绘。我无法解释这个循环,我已经很绝望了。我会非常感谢任何帮助或建议。

我真的很想给你一些代码,但它太多了。而且我真的不知道什么会有用。

问候,玉米

4

1 回答 1

1

在 JFrame上做this.repaint()就足够了,它会重新绘制 JFrame 上的所有对象(组件)。

于 2014-07-22T13:11:22.887 回答