swing下使用JFreeChart的一個例子
阿新 • • 發佈:2019-02-07
這是給出一個例子,因為找了一段時間才找到,這裡給出來供各位參考。希望能被google搜尋到。
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import jws.pubGUI.YcJPanel;
public class DayLinkChart {
Date dt;
long Stcd;
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new DayLinkChart().createDemoPanel());
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private static CategoryDataset createDataset() {
String s = "First";
String s1 = "Second";
String s2 = "Category 1";
// 生成defaultcategorydataset資料來源物件
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
// 向該defaultcategorydataset資料來源物件新增資料
defaultcategorydataset.addValue(1.0D, s, s2);
defaultcategorydataset.addValue(5D, s1, s2);
return defaultcategorydataset;
}
private static JFreeChart createChart(CategoryDataset categorydataset) {
JFreeChart jfreechart = ChartFactory.createBarChart("圖形標題", "橫座標", "縱座標", categorydataset/* 資料來源 */, PlotOrientation.VERTICAL/* 方向 */, true, true, false);
jfreechart.setBackgroundPaint(new Color(0xbbbbdd));// 設定背景色
CategoryPlot categoryplot = jfreechart.getCategoryPlot();
// 得到圖形以便精細設定
NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
// 取得該類圖形的範圍數字軸,指縱座標
numberaxis.setTickLabelFont(new Font("黑體", Font.ITALIC, 18));
// 設定縱座標的字型,風格,大小
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
// 設定縱座標以標準整形為單位
BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();
// barrenderer表示得到所有的柱形集合物件
barrenderer.setDrawBarOutline(false);// 不顯示柱形的外邊框
barrenderer.setMaximumBarWidth(2D);// 設定每個圖形的最大寬度
GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, Color.black);// 從上到下漸變的顏色
GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, Color.red);// 從上到下漸變的顏色
barrenderer.setSeriesPaint(0, gradientpaint);// 第一個柱形
barrenderer.setSeriesPaint(1, gradientpaint1);// 第二個柱形
return jfreechart;
}
/**
* 返回一個面板
*
* @return JPanel
*/
public static JPanel createDemoPanel() {
// 生成jfreechart物件
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
}
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import jws.pubGUI.YcJPanel;
public class DayLinkChart {
Date dt;
long Stcd;
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new DayLinkChart().createDemoPanel());
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private static CategoryDataset createDataset() {
String s = "First";
String s1 = "Second";
String s2 = "Category 1";
// 生成defaultcategorydataset資料來源物件
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
// 向該defaultcategorydataset資料來源物件新增資料
defaultcategorydataset.addValue(1.0D, s, s2);
defaultcategorydataset.addValue(5D, s1, s2);
return defaultcategorydataset;
}
private static JFreeChart createChart(CategoryDataset categorydataset) {
JFreeChart jfreechart = ChartFactory.createBarChart("圖形標題", "橫座標", "縱座標", categorydataset/* 資料來源 */, PlotOrientation.VERTICAL/* 方向 */, true, true, false);
jfreechart.setBackgroundPaint(new Color(0xbbbbdd));// 設定背景色
CategoryPlot categoryplot = jfreechart.getCategoryPlot();
// 得到圖形以便精細設定
NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
// 取得該類圖形的範圍數字軸,指縱座標
numberaxis.setTickLabelFont(new Font("黑體", Font.ITALIC, 18));
// 設定縱座標的字型,風格,大小
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
// 設定縱座標以標準整形為單位
BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();
// barrenderer表示得到所有的柱形集合物件
barrenderer.setDrawBarOutline(false);// 不顯示柱形的外邊框
barrenderer.setMaximumBarWidth(2D);// 設定每個圖形的最大寬度
GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, Color.black);// 從上到下漸變的顏色
GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, Color.red);// 從上到下漸變的顏色
barrenderer.setSeriesPaint(0, gradientpaint);// 第一個柱形
barrenderer.setSeriesPaint(1, gradientpaint1);// 第二個柱形
return jfreechart;
}
/**
* 返回一個面板
*
* @return JPanel
*/
public static JPanel createDemoPanel() {
// 生成jfreechart物件
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
}