我正在创建一个图形绘图仪,用于绘制(绘制)数据点和数据点。基于定期更新数据点的行。
我在JFrame中使用JPanel作为绘图画布。
JPanel包含线轴和&其他信息(比例等)为背景。它还包含更新数据点作为内容。
我想在获取新数据后定期更新JFrame的内容。 获取部分的数据点是完整的&工作正常。
这是我的代码:http://pastebin.com/SAEjNT1R,http://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)(重复)我该如何解决这个问题?
由于
答案 0 :(得分:4)
由于工作相关的防火墙限制,我无法查看链接,但无论如何,因为您要求志愿者提供免费建议,您真的应该在这里发布相关代码,以便让我们尽可能轻松地帮助你。
话虽如此,在JPanel的paintComponent方法中显示的BufferedImage上绘制图形的不变部分,然后在JPanel的paintComponent方法中绘制更改的部分,可能是通过循环遍历数据点的ArrayList。 p>
答案 1 :(得分:4)
如果您使用的是JFreeChart
,则这是一个相关的example,它使用javax.swing.Timer
来调整动画的速度。请注意JFreeChart
按设计更新每个增量的整个图。