2

我正在创建一个绘图仪,它根据定期更新的数据点绘制(绘制)数据点和线。

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

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

在获取新数据后,我想定期更新 JFrame 的内容。数据点获取部分已完成并且工作正常。

这是我的代码:http ://pastebin.com/SAEjNT1R,http : //pastebin.com/WvPTyEfR(面板类)。

主要的:

面板对象类:

这是 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)(重复)来自 Main

我该如何解决这个问题?

谢谢

4

2 回答 2

4

由于与工作相关的防火墙限制,我无法查看链接,但无论如何,由于您正在向志愿者寻求免费建议,您确实应该在此处发布相关代码,以便我们尽可能轻松地为您提供帮助。

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

于 2012-10-19T18:22:42.097 回答
4

如果您正在使用JFreeChart,这里有一个使用 a来调整动画速度的相关示例。javax.swing.Timer请注意,JFreeChart按设计更新每个增量的整个图。

于 2012-10-19T18:29:58.193 回答