Este artigo compartilha o código específico do gráfico de linhas dinâmicas jfreechart para sua referência. O conteúdo específico é o seguinte
Desenhe uma vez a cada segundo e desenhe novamente após um minuto
Os pacotes JAR necessários são: gnujaxp.jar, JCommon-1.0.16.Jar, Jfreechart-1.0.13.jar
classe pública jfreezhexiant {public static xyseries xycpuseries = new xyseries ("cpu"); public static int centes = 0; public static jfreechart jfreechart = null; public jpanel getcpujfreechart () {jfreechart = ChartFactory.createxylineChart (nulo, nulo, nulo, criadoTaset1 (), plotorientation.vertical, falso, verdadeiro, falso); StandardChartTheme mChartTheMe = new StandardChartTheMe ("CN"); mChartTheme.setLargeFont (New Font ("Bold", Font.Bold, 20)); mChartTheMe.SetextralargeFont (New Font ("Zongyi", Font.Plain, 15)); mChartTheme.setRegularFont (New Font ("Zongyi", font.plain, 15)); ChartFactory.SettHartTheMe (mChartTheMe); jfreechart.setborderpaint (nova cor (0,204.205)); jfreechart.setBordervisible (true); XyPlot xyPlot = (xyplot) jfreechart.getplot (); // Y-Axis númeroxis númeroxis = (númeroxis) xyplot.getrangeAxis (); númeroxis.setLowerBound (0); númeroxis.setUpperBound (100); númeroxis.setTickUnit (New NumberTickunit (100d)); // Somente valores inteiros são exibidos números.setStandardTickunits (númeroxis.createIntegerickunits ()); // númeroxis.SetAUtorRangeincludesZero (true); númeroxis.setLowerMargin (0); // sob o eixo de dados (esquerda) margem númeroxis.setMinortickmarksvisible (false); // se a linha de marcação exibe o númeroxis.setTickMarkInsidElngth (0); // Comprimento interno da marca de ticks externo númeroxis.setTickmarkoutsIdEngth (0); // Design de x-exis númeroxis x = (númeroxis) xyplot.getDomainaxis (); X.SetAutorange (true); // Defina automaticamente o intervalo de dados do eixo de dados // Defina o valor da coordenada horizontal por si mesmo x.setaToTickunitSelection (false); x.setTickUnit (novo NumberTickunit (60d)); // Defina o valor máximo de exibição e o valor mínimo de exibição x.setLowerBound (0); x.setUpperBound (60); // Rótulo de dados do eixo de dados: exibe apenas o rótulo inteiro x.SetStandardTickunits (númeroxis.createIntegerickunits ()); x.setAxisLineVisible (true); // se a linha vertical do eixo x exibe x.setTickmarksvisible (false); // se a linha de marcação exibe retângulo Offset = new RectangleInsets (0, 0, 0, 0); xyplot.setAxisoffset (deslocamento); // O espaçamento entre o eixo e a área de dados xyplot.setbackgroundalpha (0,0f); // remova a cor do plano de fundo do gráfico de barras XyPlot.setOutLinePaint (null); // remover o border // ChartPanel // ChartPanel.RestoreAutodomainBounds (); // Redefina o x-AXIS ChartPanel ChartPanel = new ChartPanel (Jfreechart, True); Retornar ChartPanel; } / ** * Este método é o design de dados * * @return * / public static xydataSet crioutaset1 () {xyseriescollection xyseriescollection = new xyseriescollection (); xySeriesCollection.AddSeries (Xycpuseries); retornar xyseriescollection; } / *** dados gerados aleatórios* / public static void dynamicrun () {int i = 0; while (true) {duplo fator = math.random ()*100; centenas = (int) fator; jfreechart.settitle ("O tamanho da CPU é:"+hundroud+"%"); jfreechart.gettitle (). setFont (new Font ("Microsoft yahei", 0, 16)); // Defina a fonte do título xycpuseries.add (i, fator); tente {thread.currentThread (); Thread.sleep (1000); } catch (interruptedException e) {e.printStackTrace (); } i ++; if (i == 60) {i = 0; xycpuseries.delete (0, 59); continuar; }}} public static void main (string [] args) {jfreezhexiant mais jz = novo jfreezhexiantest (); JFRame Frame = new JFrame (); frame.SetSize (700, 500); frame.getContentPane (). add (jz.getcpujfreechart (), borderlayout.center); frame.setVisible (true); frame.setLocationRelativeTo (NULL); // A janela está localizada no centro do quadro da tela.setDefaultCloseoperation (WindowConstants.exit_on_close); dynamicrun (); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.