⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linechart.java

📁 上网计费系统,适用网吧或者自己学习用用JAVA写成
💻 JAVA
字号:
package com.briup.chart;

import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Hour;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import com.briup.dao.bean.Nasday;


public class LineChart {
	public void createChart(String type, OutputStream os, List lineValues,
			String title, String subtitle, String xTitle, String yTitle,
			int width, int height) throws IOException {
		TimeSeriesCollection dataset = getTimeSeriesCollection(type, lineValues);
		JFreeChart chart = ChartFactory.createTimeSeriesChart(title, xTitle,
				yTitle, dataset, false, true, false);
		TextTitle st = new TextTitle(subtitle, new Font("宋体", Font.BOLD, 12));
		chart.addSubtitle(st);
		chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000,
				Color.blue));
		XYPlot xyplot = (XYPlot) chart.getPlot();
		DateAxis dateAxis = (DateAxis) xyplot.getDomainAxis();
		dateAxis.setDateFormatOverride(new SimpleDateFormat("H"));
		dateAxis.setAutoRange(false);
		ChartUtilities.writeChartAsJPEG(os, 1.0f, chart, width, height, null);
	}

	private TimeSeriesCollection getTimeSeriesCollection(String type,
			List lineValues) {
		TimeSeries ts = new TimeSeries("NAS日统计", Hour.class);
		Calendar cal = Calendar.getInstance();
		Iterator iter = lineValues.iterator();
		if (type.equals("num")) {
			while (iter.hasNext()) {
				Nasday nasday = (Nasday) iter.next();
				cal.setTime(nasday.getOndate());
				Hour current = new Hour(cal.get(Calendar.HOUR_OF_DAY), cal
						.get(Calendar.DAY_OF_MONTH),
						cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR));
				ts.add(current, nasday.getOnlineUsers());
			}
		} else if (type.equals("flux")) {
			while (iter.hasNext()) {
				Nasday nasday = (Nasday) iter.next();
				cal.setTime(nasday.getOndate());
				Hour current = new Hour(cal.get(Calendar.HOUR_OF_DAY), cal
						.get(Calendar.DAY_OF_MONTH),
						cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR));
				ts.add(current, nasday.getFlux());
			}
		}
		TimeSeriesCollection dataset = new TimeSeriesCollection(ts);
		return dataset;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -