جافا وJFreechart:الحصول على الإدخال المعدل فقط من DatasetChangeEvent
-
27-10-2019 - |
سؤال
أنا أستخدم أ DatasetChangeListener
لمراقبة تعديل البعض XYSeriesCollection
لأن التغيير في سلسلة واحدة يجب أن ينعكس في سلسلة أخرى من مخططات طلبي.
public void datasetChanged(DatasetChangeEvent arg0) {
XYSeriesCollection d = (XYSeriesCollection)arg0.getDataset();
System.out.println(d.getGroup().getID());
}
أنا استخدم DatasetGroup
لتخزين سلسلة تحدد مجموعة البيانات بشكل فريد.
النقطة المهمة الآن هي أنني أود أن أعرف فقط الإدخال الفردي لمجموعة البيانات التي حدث فيها التغيير، وإلا فإنني سأضطر إلى التكرار خلال مجموعة البيانات بأكملها وفحص جميع البيانات.هل هناك اي طريقة لعمل ذلك؟
على سبيل المثال، أود أن أعرف أنه حدث تغيير للسلسلة 1 في المجموعة، على قيمة y للعنصر الثالث.هل هذا ممكن؟
المحلول
ال Dataset
عاد بواسطة getDataset()
ربما لا يكون مفيدًا في هذا السياق.بدلا من ذلك، انظر إلى مصدر أ SeriesChangeEvent
.ربما سيتعين عليك تجاوز واحد أو أكثر من add()
الأساليب في فئة فرعية من XYSeries
لتتبع تفاصيل التغيير.
نصائح أخرى
لقد قمت بحل المشكلة جزئيًا باستخدام SeriesChangeListener وإضافة سلسلة وصف إلى كل سلسلة، ولكن ما زلت بحاجة إلى فحص جميع القيم داخل السلسلة.إنه حل أفضل من استخدام DatasetChangeListener (لست بحاجة إلى فحص جميع قيم جميع السلاسل في مجموعة البيانات) ولكنه ليس مثاليًا.