บทความนี้แบ่งปันรหัสเฉพาะของ JFreechart Dynamic Line แผนภูมิสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
วาดหนึ่งครั้งทุกวินาทีและวาดอีกครั้งหลังจากหนึ่งนาที
แพ็คเกจโถที่จำเป็นคือ: gnujaxp.jar, jcommon-1.0.16.jar, jfreechart -1.0.13.jar
ระดับสาธารณะ JFreeZhexiantest {สาธารณะ XySeries XyCPUSERIES = ใหม่ XYSERIES ("CPU"); สาธารณะคงที่หลายร้อย = 0; สาธารณะ Jfreechart Jfreechart = NULL; สาธารณะ jpanel getCpujfreeChart () {jfreechart = ChartFactory.CreatexylineChart (NULL, NULL, NULL, CreateDatAset1 (), plotorientation.vertical, False, Treat, False); StandardChartTheme MCHARTTHEME = ใหม่ StandardChartTheMe ("CN"); MCHARTTHEME.SETLARGEFONT (FONT ใหม่ ("BOLD", FONT.BOLD, 20)); MCHARTTHEME.SETEXTRALARGEFONT (FONT ใหม่ ("ZONGYI", FONT.PLAIN, 15)); MCHARTTHEME.SESTREGULALFONT (ฟอนต์ใหม่ ("Zongyi", Font.Plain, 15)); ChartFactory.SetchartTheme (MCHARTTHEME); jfreechart.setBorderPaint (สีใหม่ (0,204,205)); jfreechart.setBorderVisible (จริง); xyplot xyplot = (xyplot) jfreechart.getPlot (); // y-axis numberaxis numberaxis = (numberaxis) xyplot.getRangeAxis (); numberaxis.setlowerbound (0); numberaxis.setupperbound (100); numberaxis.settickunit (numbertickunit ใหม่ (100d)); // เฉพาะค่าจำนวนเต็มเท่านั้นที่แสดง numberaxis.setstandardtickunits (numberaxis.createintegertickunits ()); // numberaxis.setautorangeincludeszero (จริง); numberaxis.setlowermargin (0); // ภายใต้แกนข้อมูล (ซ้าย) margin numberaxis.setMinortickmarksvisible (เท็จ); // ไม่ว่าจะเป็นบรรทัดการทำเครื่องหมายจะแสดง numberaxis.settickmarkinsidelength (0); // ความยาวด้านในของเครื่องหมายเห็บด้านนอก numberaxis.settickmarkoutsidelength (0); // การออกแบบของ x-axis numberaxis x = (numberaxis) xyplot.getdomainaxis (); X.SetautoRange (จริง); // ตั้งค่าช่วงข้อมูลของแกนข้อมูลโดยอัตโนมัติ // ตั้งค่าของพิกัดแนวนอนด้วยตัวคุณเอง x.setautotickunitselection (เท็จ); X.Settickunit (NumberTickunit ใหม่ (60D)); // ตั้งค่าการแสดงผลสูงสุดและค่าการแสดงผลขั้นต่ำ X.SetLowerBound (0); X.Setupperbound (60); // ป้ายกำกับข้อมูลของแกนข้อมูล: แสดงเฉพาะฉลากจำนวนเต็ม X.SetStandardTickunits (numberaxis.createIntegertickunits ()); X.SetAxisLineVisible (จริง); // ไม่ว่าเส้นแนวตั้ง X-Axis จะแสดง X.SettickMarkSvisible (เท็จ); // ไม่ว่าจะเป็นบรรทัดการทำเครื่องหมายจะแสดง rectangleInsets ออฟเซ็ต = ใหม่ rectangleInsets (0, 0, 0, 0); xyplot.setaxisoffset (ออฟเซ็ต); // ระยะห่างระหว่างแกนและพื้นที่ข้อมูล xyplot.setbackgroundalpha (0.0f); // ลบสีพื้นหลังของแผนภูมิแท่ง xyplot.setOutinepaint (null); // ลบชายแดน // Chartpanel Chartpanel = ใหม่ Chartpanel // chartpanel.restoreautoDomainbounds (); // รีเซ็ต X-Axis Chartpanel Chartpanel = ChartPanel ใหม่ (JFreechart, TRUE); กลับ Chartpanel; } / ** * วิธีนี้คือการออกแบบข้อมูล * * @return * / สาธารณะ XyDataSet createDataSet1 () {xyseriescollection xyseriescollection = ใหม่ xyseriescollection (); Xyseriescollection.addseries (XyCpuseries); ส่งคืน xyseriescollection; } / *** ข้อมูลที่สร้างขึ้นแบบสุ่ม* / โมฆะสาธารณะคงที่ DynamicRun () {int i = 0; ในขณะที่ (จริง) {double factor = math.random ()*100; หลายร้อย = (int) ปัจจัย; jfreechart.settitle ("ขนาดของ CPU คือ:"+hundroud+"%"); jfreechart.getTitle (). setfont (ฟอนต์ใหม่ ("Microsoft Yahei", 0, 16)); // ตั้งชื่อ Font Font XyCpuseries.add (I, Factor); ลอง {thread.currentthread (); Thread.sleep (1,000); } catch (interruptedException e) {e.printStackTrace (); } i ++; if (i == 60) {i = 0; xycpuseries.delete (0, 59); ดำเนินการต่อ; }}} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jfreezhexiantest jz = new jfreezhexiantest (); JFrame frame = new JFrame (); frame.setsize (700, 500); frame.getContentPane (). เพิ่ม (jz.getcpujfreechart (), borderlayout.center); frame.setVisible (จริง); frame.setLocationRelativeto (null); // หน้าต่างอยู่ที่กึ่งกลางของเฟรมหน้าจอ SetDefaultCloseOperation (WindowConstants.exit_on_close); DynamicRun (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น