في الآونة الأخيرة ، أريد استخدام المخططات المنحنية في الوقت الفعلي. لقد وجدت ذلك على الإنترنت. هناك طريقتان لتنفيذها. واحد هو مثال رسمي لـ Jfreechart MemoryUsagedemo.java. من خلال فئة داخلية تنفذ java.swing.timer ، تتم إضافة بيانات الوقت الفعلي إلى الأوقات في مستمعها. نظرًا لأن المؤقت سيتم تنفيذه في الوقت الفعلي ، فلا توجد مشكلة في هذه الطريقة. يمكنك الرجوع إلى الرمز.
طريقة أخرى هي تنفيذ الواجهة القابلة للتشغيل لفئة الوقت الفعلي. في طريقة Run () ، تتم إضافة البيانات في الوقت الفعلي إلى الزمن من خلال الحلقات اللانهائية. فيما يلي رمز التنفيذ الأكثر بساطة:
//realtimechart.java استيراد org.jfree.chart.chartfactory ؛ استيراد org.jfree.chart.chartpanel ؛ استيراد org.jfree.chart.jfreechart ؛ استيراد org.jfree.chart.axis.valueaxis ؛ استيراد org.jfree.chart.plot.xyplot ؛ استيراد org.jfree.data.time.millisecond ؛ استيراد org.jfree.data.time.timeseries ؛ استيراد org.jfree.data.time.timeseriesCollection ؛ الطبقة العامة RealTimeChart يمتد الأدوات chartpanel charnable {private static timeseries servies ؛ القيمة الطويلة الخاصة = 0 ؛ Public RealTimechart (سلسلة chartcontent ، عنوان السلسلة ، سلسلة yaxisname) {super (createchart (chartContent ، title ، yaxisname)) ؛ } jfreechart static الخاص (سلسلة chartcontent ، عنوان السلسلة ، السلسلة yaxisname) {// إنشاء وقت كائن السلسلة الزمنية = new Timeseries (ChartContent ، millisecond.class) ؛ TimeSeriesCollection TimeSeriesCollection = TimeseriesCollection (TimeSeries) ؛ jfreechart jfreechart = chartfactory.createTimeseriesChart (العنوان ، "TimeSeriesCollection (Seconds) ، yaxisname ، timeSeriesCollection ، true ، true ، false) ؛ // onormal إعداد بيانات ValueAxis.setautorange (True) ؛ //valueaxis.setrange(0.0d) ؛ System.out.println (Math.Random ()*80) ؛ { / ** * param args * / public static void (string [] args) Frame.SetVisible (True) ؛هناك مشكلة في كلتا الطريقتين ، أي في كل مرة يتم تنفيذ الرسم البياني ، يجب إعادة كتابته ، لأنه لا يمكن نقل البيانات في الوقت الفعلي من خلال المعلمات. أتساءل عما إذا كان من الممكن تمرير البيانات في الوقت الفعلي من خلال طريقة setxxx () ، بحيث يمكن تغليف فئة الرسم في الوقت الفعلي ، فقط تمرير بعض المعلمات ، أو من لديه طريقة أفضل؟
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.