【问题标题】:Force full redraw of a Jpanel Java2D强制完全重绘 Jpanel Java2D
【发布时间】:2014-12-16 03:16:05
【问题描述】:

我的问题是我需要制作一个不断更新的 GUI,因为我得到的值可以从数据库中更改,并且我在图形区域遇到了一些问题。

我使用来自 Graphics2D 的 Drawline 和 Drawstring 打印在数据库中找到的值,这些字符串和线条移动并改变值,所以我需要调用 repaint();使用计时器使它们出现在 jpanel 中,问题在于 repaint();不是在绘画之前删除背景中的旧画,而是当我完美地调整所有更新的大小时。

我知道一种清除方法,但背景颜色也会消失,所以, 有没有办法更新jpanel删除旧画并保持默认背景颜色?

未更新

将坐标和标签文本更改为“AXIS Y”后(从计时器自动调用重绘)

谢谢。

【问题讨论】:

  • 您似乎忘记致电super.paintComponent。如需更好的帮助,post an MCVE
  • @peeskillet 您的评论应该是一个答案。我同意你的观点。
  • 是的,@peeskillet 说的是事实。更重要的是,如果没有代码,我们怎么能确定你做错了什么?你可以大大改进这个问题。
  • @karlphillip 没有看到一些代码,这只是一个有根据的猜测
  • 考虑提供一个runnable example 来证明您的问题。这将减少混乱并获得更好的响应

标签: java swing awt graphics2d java-2d


【解决方案1】:

从您的图像看起来,您似乎只是忘记在paintComponent 方法中调用super.paintComponent。这样做是为您重新绘制背景,因此不会留下以前的绘制工件。

@Override
protected voud paintComponent(Graphics g) {
    super.paintComponent(g);
}

注意:为了将来参考,虽然这些图片给了我们很好的图片,但最好将 a Minimal, Complete, and Verifiable example连同这些图片一起发布,所以我们不必进行猜测(受过教育或不是)

【讨论】:

    猜你喜欢
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2014-05-20
    • 1970-01-01
    相关资源
    最近更新 更多