循环重绘问题

时间:2014-02-21 17:55:57

标签: java cursor components paint glasspane

我遇到了一个很大的问题。我正在编写一个具有以下结构的GUI:

MainFrame(MainPanel(JScrollPane(ContentPanel(Content1,Content2,Content3)))))

MainFrame上还有一个GlassPane。 GlassPane类中有一个Timer,大约每100毫秒。

此Timer正在更新Content1的JSlider的值。 JSlider还有一个更改侦听器,它将拇指的当前X坐标提供给GlassPane。如果更改,这些坐标用于在每个刻度线上绘制一条线。这一行遍及Content1,Content2和Content3。

我目前正在尝试通过this.repaint(),MainPanel.repaint(),this.repaint(Rectangle),MainPanel.repaint(Rectangle)更新这些内容。

不幸的是所有这些方法(甚至重绘(Rectangle)o0)都调用了Content1,Content2和Content3的paintComponent方法,以某种方式创建了一个循环重绘。我无法解释这个循环,我已经非常绝望了。我非常感谢任何帮助或建议。

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

电贺, 玉米

1 个答案:

答案 0 :(得分:1)

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