日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java动态打印_JFreeChart学习(三)——动态打印java内存使用情况

發(fā)布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java动态打印_JFreeChart学习(三)——动态打印java内存使用情况 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JFreeChart動態(tài)打印java內(nèi)存使用情況

import java.awt.BasicStroke;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.Timer;

import org.jfree.chart.ChartPanel;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.DateAxis;

import org.jfree.chart.axis.NumberAxis;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

import org.jfree.data.time.Millisecond;

import org.jfree.data.time.TimeSeries;

import org.jfree.data.time.TimeSeriesCollection;

import org.jfree.ui.RectangleInsets;

public class MemoryUsage extends JPanel {

class DataGenerator extends Timer implements ActionListener {

/*

* Invoked when an action occurs.

*

* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

*/

public void actionPerformed(ActionEvent actionevent) {

long free = Runtime.getRuntime().freeMemory();

long total = Runtime.getRuntime().totalMemory();

addTotalObservation(total);

addFreeObservation(free);

}

DataGenerator(int i) {

super(i, null);

addActionListener(this);

}

}

public MemoryUsage(int maxItemAge) {

super(new BorderLayout());

total = new TimeSeries("Total Memory",

org.jfree.data.time.Millisecond.class);

total.setMaximumItemAge(maxItemAge);

// free = new TimeSeries("Free Memory",

// org.jfree.data.time.Millisecond.class);

free = new TimeSeries("Free Memory");

free.setMaximumItemAge(maxItemAge);

TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();

timeseriescollection.addSeries(total);

timeseriescollection.addSeries(free);

DateAxis dateaxis = new DateAxis("Time");

NumberAxis numberaxis = new NumberAxis("Memory");

dateaxis.setTickLabelFont(new Font("SansSerif", 0, 12));

numberaxis.setTickLabelFont(new Font("SansSerif", 0, 12));

dateaxis.setLabelFont(new Font("SansSerif", 0, 14));

numberaxis.setLabelFont(new Font("SansSerif", 0, 14));

dateaxis.setAutoRange(true);

dateaxis.setLowerMargin(0.0D);

dateaxis.setUpperMargin(0.0D);

dateaxis.setTickLabelsVisible(true);

numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(

true, false);

xylineandshaperenderer.setSeriesPaint(0, Color.RED); // 改變第一個Series的顏色

xylineandshaperenderer.setSeriesPaint(1, Color.YELLOW);// 改變第二個Series的顏色

xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(1F, 0, 2));

xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(1F, 0, 2));

XYPlot xyplot = new XYPlot(timeseriescollection, dateaxis, numberaxis,

xylineandshaperenderer);

xyplot.setBackgroundPaint(Color.BLACK); // 改變背景顏色

xyplot.setDomainGridlinePaint(Color.white);

xyplot.setRangeGridlinePaint(Color.white);

xyplot.setAxisOffset(new RectangleInsets(1D, 1D, 1D, 1D));

JFreeChart jfreechart = new JFreeChart("JVM Memory Usage", new Font(

"SansSerif", 1, 24), xyplot, true);

jfreechart.setBackgroundPaint(Color.white);

ChartPanel chartpanel = new ChartPanel(jfreechart, true);

chartpanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory

.createEmptyBorder(10, 10, 10, 10), BorderFactory

.createLineBorder(Color.black)));

add(chartpanel);

}

private void addTotalObservation(double d) {

total.add(new Millisecond(), d);

}

private void addFreeObservation(double d) {

free.add(new Millisecond(), d);

}

/**

* @param args

*/

public static void main(String[] args) {

JFrame jframe = new JFrame("JVM Memory Usage");

MemoryUsage memoryusagedemo = new MemoryUsage(10000);

jframe.getContentPane().add(memoryusagedemo, "Center");

jframe.setBounds(200, 120, 1000, 500);

jframe.setVisible(true);

(memoryusagedemo.new DataGenerator(1000)).start();

jframe.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent windowevent) {

System.exit(0);

}

});

}

private TimeSeries total;

private TimeSeries free;

}

總結(jié)

以上是生活随笔為你收集整理的java动态打印_JFreeChart学习(三)——动态打印java内存使用情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。