3

我每 400 毫秒从网络接收浮点数据,我将其放入 4 个浮点数组中。我将这些数组存储在另一个数组中,所以我有:

float[][] datas = {data1, data2, data3, data4};
FloatData floatData = new FloatData(datas);
model.addFloatData(floatData);

我的模型有一个 FloatData 对象列表,而 FloatData 对象有以下方法:

float[] getFloatData(int index);

返回我想要的浮点数组。该数组用于在 JPanel 上绘制。因此,在 painComponent 中,我执行以下操作:

for(FloatData floatData : listOfFloatData) {
floatData.draw(g, index);
}

我的问题是我可以为 listOfFloatData 使用什么样的列表,因为它将每 400 毫秒更新一次并在 paintComponent 方法中读取?另外,我想知道将 listOfFloatData 从模型传递到我的视图的便捷方法?我正在考虑使用一个持有 listOfFloatData 的单例对象,因为这个列表将在几个组件中使用?谢谢你。

4

1 回答 1

2

通过将数据存储在AbstractTableModel. 使用的享元模式JTable在渲染方面效率更高,您可以将模型修改为分析权证。

附录:如果您在另一个线程上收集数据,例如SwingWorker,您可以publish()以非常低的延迟收集数据,而您的实现会在Event Dispatch Threadprocess()上更新模型。这里有一个例子。

于 2011-07-27T19:22:51.610 回答