【问题标题】:Cyclic repaint issue循环重绘问题
【发布时间】:2014-03-23 09:33:46
【问题描述】:

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

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

您好, 玉米

【问题讨论】:

标签: java cursor components paint glasspane


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2013-09-06
    相关资源
    最近更新 更多