Cet article partage le code spécifique du graphique de ligne dynamique JFreechart pour votre référence. Le contenu spécifique est le suivant
Dessinez une fois à chaque seconde et dessinez à nouveau après une minute
Les forfaits JAR requis sont: Gnujaxp.jar, JCOMMON-1.0.16.jar, jfreechart-1.0.13.jar
classe publique jfreezhexiantest {public static xySeries xycPuseries = new XySeries ("CPU"); Public Static int Caltesss = 0; public statique JFreechart jfreechart = null; public jpanel getcpujfreechart () {jfreechart = chartFactory.CreateExylineChart (null, null, null, CreateDataSet1 (), Plotorientation.vertical, false, true, false); StandardChartTheme mChartTheme = new StandardChartTheme ("CN"); MCHARTTHEME.SETLARGEFONT (New Font ("Bold", Font.Bold, 20)); MCHARTTHEME.SETEXTRALARGEFONT (New Font ("Zongyi", Font.Plain, 15)); MCHARTTHEME.SETRENGULULLEFONT (NOUVEAU FONT ("Zongyi", Font.Plain, 15)); ChartFactory.SetchartTheme (McHartTheme); jfreechart.setborderpaint (nouvelle couleur (0,204,205)); jfreechart.setborderVisible (true); Xyplot xyplot = (xyplot) jfreechart.getplot (); // y-axis NumberAxis NumberAxis = (NumberAxis) xyplot.getRangeaxis (); NumberAxis.SetLowerBound (0); NumberAxis.SetUpperBound (100); NumberAxis.SetTickUnit (Nouveau NumberTickUnit (100D)); // Seules les valeurs entières sont affichées NumberAxis.SetStandardTickUnits (NumberAxis.CreateIntegerTickUnits ()); // NumberAxis.setAutorangeIncludsEzero (true); NumberAxis.SetLowerMargin (0); // sous l'axe de données (gauche) margin normeaxis.setMinorTtickMarksVisible (false); // si la ligne de marquage affiche NumberAxis.SetTickMarkIndeLength (0); // Longueur intérieure de la marque extérieure Mark NumberAxis.SetTickmarkoutsIdElngth (0); // Conception de l'axe x-axe NumberAxis x = (NumberAxis) xyplot.getDomainaxis (); x.setAutorange (true); // Définissez automatiquement la plage de données de l'axe de données // Définissez la valeur de la coordonnée horizontale par vous-même x.setAutoToTickUnitsElection (FALSE); x.setTickUnit (nouveau numéroTickUnit (60D)); // Définissez la valeur d'affichage maximale et la valeur d'affichage minimale x.setLowerBound (0); x.setupperbound (60); // Étiquette de données de l'axe de données: affichez uniquement l'étiquette entier x.SetStandardTickUnits (NumberAxis.CreateIntegerTickUnits ()); x.SetaxislineVisible (true); // si la ligne verticale de l'axe x affiche x.setTickMarksVisible (false); // si la ligne de marquage affiche RectangleInsets offset = new RectangleInsets (0, 0, 0, 0); xyplot.setaxisoffset (offset); // L'espacement entre l'axe et la zone de données xyplot.setbackgroundalpha (0,0f); // supprime la couleur d'arrière-plan du graphique à barres xyplot.setoutlinePaint (null); // supprimer la bordure // chartpanel chartpanel = nouveau chartpanel (jfreechart); // ChartPanel.RestoreAutodomainBounds (); // Réinitialise le chartpanel de chartpanel de l'axe X = new ChartPanel (Jfreechart, true); Retour ChartPanel; } / ** * Cette méthode est la conception de données * * @return * / public static xydataset CreateDataSet1 () {xySeriesCollection xySeriesCollection = new xySeriesCollection (); xySeriesCollection.AddSeries (xycPuseries); retour xySeriesCollection; } / ** * Données générées aléatoires * / public static void dynamicrun () {int i = 0; while (true) {double facteur = math.random () * 100; centaines = (int) facteur; jfreechart.setTitle ("La taille du CPU est:" + hundroud + "%"); jfreechart.getTitle (). SetFont (New Font ("Microsoft Yahei", 0, 16)); // définir la police de titre xycpuseries.add (i, facteur); essayez {thread.currentThread (); Thread.Sleep (1000); } catch (InterruptedException e) {e.printStackTrace (); } i ++; if (i == 60) {i = 0; xycpuseries.delete (0, 59); continuer; }}} public static void main (String [] args) {jfEZEZHEXIANT JZ = new JFEZEZHEXIANT (); JFrame frame = new JFrame (); frame.SetSize (700, 500); frame.getContentPane (). Add (jz.getcpujfreechart (), borderLayout.Center); frame.setVisible (true); frame.setLocationRelaTIVETO (null); // La fenêtre est située au centre de l'écran Frame.SetDefaultCloseOperation (WindowConstants.exit_on_close); dynamicrun (); }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.