如何绘制和重绘/更新JPanel的内容(而不是背景)组件?

时间:2012-10-19 18:19:12

标签: java swing awt jpanel panel

我正在创建一个图形绘图仪,用于绘制(绘制)数据点和数据点。基于定期更新数据点的行。

我在JFrame中使用JPanel作为绘图画布。

JPanel包含线轴和&其他信息(比例等)为背景。它还包含更新数据点作为内容

我想在获取新数据后定期更新JFrame的内容。 获取部分的数据点是完整的&工作正常。

这是我的代码:http://pastebin.com/SAEjNT1Rhttp://pastebin.com/WvPTyEfR(小组类)。

主:

Panel对象类:

这是OraclePinger包(不是真的需要,如果你想运行):在pastebin Wdmd3q1t(连接器类),MycAgyu3(目标类)
最初由Oracle修改 - 由我修改:docs.oracle.com/javase/1.4.2/docs/guide/nio/example/Ping.java

我只是对JPanel绘图部分感到困惑。我希望能够绘制一次背景,然后定期刷新/清除&重新绘制内容。

---说如果不能分开背景和&刷新时的内容..我们只能清除面板中的所有组件。我至少可以打电话给 panel.clearAllComponents();来自主

panel.draw(TheBackGround + Content)(重复)

我该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:4)

由于工作相关的防火墙限制,我无法查看链接,但无论如何,因为您要求志愿者提供免费建议,您真的应该在这里发布相关代码,以便让我们尽可能轻松地帮助你。

话虽如此,在JPanel的paintComponent方法中显示的BufferedImage上绘制图形的不变部分,然后在JPanel的paintComponent方法中绘制更改的部分,可能是通过循环遍历数据点的ArrayList。 p>

答案 1 :(得分:4)

如果您使用的是JFreeChart,则这是一个相关的example,它使用javax.swing.Timer来调整动画的速度。请注意JFreeChart按设计更新每个增量的整个图。

相关问题