package tbDataModel_Dell;
|
import java.awt.Color;
|
import java.awt.Font;
|
import java.util.Vector;
|
import javax.swing.JPanel;
|
import org.jfree.chart.ChartFactory;
|
import org.jfree.chart.ChartPanel;
|
import org.jfree.chart.JFreeChart;
|
import org.jfree.chart.axis.CategoryAxis;
|
import org.jfree.chart.axis.ValueAxis;
|
import org.jfree.chart.plot.CategoryPlot;
|
import org.jfree.chart.plot.PlotOrientation;
|
import org.jfree.chart.title.LegendTitle;
|
import org.jfree.chart.title.TextTitle;
|
import org.jfree.data.DefaultKeyedValues;
|
import org.jfree.data.category.CategoryDataset;
|
import org.jfree.data.general.DatasetUtilities;
|
|
import tbDataModel.Hispower;
|
|
/**
|
* XYÕÛÏßͼ
|
*
|
*/
|
public class LineXy {
|
static JFreeChart chart=null;
|
|
|
/**
|
* Éú³ÉJFreeChart
|
*/
|
private static JFreeChart getJFreeChart(String name,Vector<Hispower> hisvec) {
|
CategoryDataset dataset = null;
|
DefaultKeyedValues keyedValues = new DefaultKeyedValues();
|
int size=hisvec.size();
|
if(size !=0) {
|
for(int i=0;i<size;i++) {
|
Hispower pow=hisvec.get(i);
|
int power=Integer.parseInt(pow.getPower());
|
keyedValues.addValue(pow.getData(), power);
|
}
|
dataset = DatasetUtilities.createCategoryDataset(name, keyedValues);
|
chart = ChartFactory.createLineChart("", // ͼ±í±êÌâ
|
"ÈÕÆÚ", // xÖá±êÇ©
|
"µçÁ¿(%)", // yÖá±êÇ©
|
dataset, // Êý¾Ý¼¯
|
PlotOrientation.VERTICAL, // ͼ±í·½Ïò£ºË®Æ½¡¢´¹Ö±
|
true, // ÊÇ·ñÏÔʾͼÀý
|
false, // ÊÇ·ñÉú³É¹¤¾ß
|
false // ÊÇ·ñÉú³ÉURLÁ´½Ó
|
);
|
// ÐÞ¸Ä×ÖÌå
|
updateFont(chart);
|
}
|
return chart;
|
}
|
|
/**
|
* ÐÞ¸Ä×ÖÌå
|
*
|
* @param chart
|
*/
|
private static void updateFont(JFreeChart chart) {
|
|
// ±êÌâ
|
TextTitle textTitle = chart.getTitle();
|
textTitle.setFont(new Font("ËÎÌå", Font.PLAIN, 20));
|
LegendTitle legendTitle = chart.getLegend();
|
legendTitle.setItemFont(new Font("ËÎÌå", Font.PLAIN, 14));
|
// ͼ±í
|
CategoryPlot categoryPlot = chart.getCategoryPlot();
|
|
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
|
// XÖá×ÖÌå
|
categoryAxis.setTickLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
|
// XÖá±êÇ©×ÖÌå
|
categoryAxis.setLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
|
|
ValueAxis valueAxis = categoryPlot.getRangeAxis();
|
// yÖá×ÖÌå
|
valueAxis.setTickLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
|
// yÖá±êÇ©×ÖÌå
|
valueAxis.setLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
|
}
|
|
/**
|
* ÉèÖÃͼ±í
|
*
|
* @param chart
|
*/
|
public JPanel getMb(String name) {
|
JPanel mb=new JPanel();
|
mb.setBackground(Color.white);
|
// ÐÞ¸Ä×ÖÌå
|
mb.add(new ChartPanel(getJFreeChart(name,Dell_hispower.getHispower_vec())));
|
return mb;
|
}
|
|
}
|