程式扎記: [ Java 代碼範本 ] JFreeChart : Bar Chart - BarChartDemo7

標籤

2016年2月9日 星期二

[ Java 代碼範本 ] JFreeChart : Bar Chart - BarChartDemo7


UI Effect
 

Sample Code
  1. package report.demo;  
  2.   
  3. import java.awt.*;     
  4. import javax.swing.JPanel;     
  5. import org.jfree.chart.*;     
  6. import org.jfree.chart.axis.*;     
  7. import org.jfree.chart.labels.*;     
  8. import org.jfree.chart.plot.*;     
  9. import org.jfree.chart.renderer.category.BarRenderer;     
  10. import org.jfree.data.category.CategoryDataset;     
  11. import org.jfree.data.category.DefaultCategoryDataset;     
  12. import org.jfree.text.TextUtilities;     
  13. import org.jfree.ui.*;     
  14. import org.jfree.util.Log;     
  15. import org.jfree.util.PrintStreamLogTarget;     
  16.   
  17. public class BarChartDemo7 extends ApplicationFrame     
  18. {     
  19.     /**   
  20.      *    
  21.      */     
  22.     private static final long serialVersionUID = 1L;     
  23.      
  24.     static class LabelGenerator extends StandardCategoryItemLabelGenerator     
  25.     {     
  26.      
  27.         /**   
  28.          *    
  29.          */     
  30.         private static final long serialVersionUID = 1L;     
  31.      
  32.         public String generateItemLabel(CategoryDataset categorydataset, int i, int j)     
  33.         {     
  34.             return categorydataset.getRowKey(i).toString();     
  35.         }     
  36.      
  37.         LabelGenerator()     
  38.         {     
  39.         }     
  40.     }     
  41.      
  42.      
  43.     public BarChartDemo7(String s)     
  44.     {     
  45.         super(s);     
  46.         CategoryDataset categorydataset = createDataset();     
  47.         JFreeChart jfreechart = createChart(categorydataset);     
  48.         ChartPanel chartpanel = new ChartPanel(jfreechart);     
  49.         chartpanel.setPreferredSize(new Dimension(500270));     
  50.         setContentPane(chartpanel);     
  51.     }     
  52.      
  53.     private static CategoryDataset createDataset()     
  54.     {     
  55.         String s = "First";     
  56.         String s1 = "Second";     
  57.         String s2 = "Third";     
  58.         String s3 = "Category 1";     
  59.         String s4 = "Category 2";     
  60.         String s5 = "Category 3";     
  61.         String s6 = "Category 4";     
  62.         String s7 = "Category 5";     
  63.         DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();     
  64.         defaultcategorydataset.addValue(1.0D, s, s3);     
  65.         defaultcategorydataset.addValue(4D, s, s4);     
  66.         defaultcategorydataset.addValue(3D, s, s5);     
  67.         defaultcategorydataset.addValue(5D, s, s6);     
  68.         defaultcategorydataset.addValue(5D, s, s7);     
  69.         defaultcategorydataset.addValue(5D, s1, s3);     
  70.         defaultcategorydataset.addValue(7D, s1, s4);     
  71.         defaultcategorydataset.addValue(6D, s1, s5);     
  72.         defaultcategorydataset.addValue(8D, s1, s6);     
  73.         defaultcategorydataset.addValue(4D, s1, s7);     
  74.         defaultcategorydataset.addValue(4D, s2, s3);     
  75.         defaultcategorydataset.addValue(3D, s2, s4);     
  76.         defaultcategorydataset.addValue(2D, s2, s5);     
  77.         defaultcategorydataset.addValue(3D, s2, s6);     
  78.         defaultcategorydataset.addValue(6D, s2, s7);     
  79.         return defaultcategorydataset;     
  80.     }     
  81.      
  82.     private static JFreeChart createChart(CategoryDataset categorydataset)     
  83.     {     
  84.         JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo 7""Category""Value", categorydataset, PlotOrientation.VERTICAL, falsetruefalse);     
  85.         jfreechart.setBackgroundPaint(Color.white);     
  86.         CategoryPlot categoryplot = jfreechart.getCategoryPlot();     
  87.         categoryplot.setBackgroundPaint(Color.lightGray);     
  88.         categoryplot.setDomainGridlinePaint(Color.white);     
  89.         categoryplot.setRangeGridlinePaint(Color.white);     
  90.         IntervalMarker intervalmarker = new IntervalMarker(4.5D, 7.5D);     
  91.         intervalmarker.setLabel("Target Range");     
  92.         intervalmarker.setLabelFont(new Font("SansSerif"211));     
  93.         intervalmarker.setLabelAnchor(RectangleAnchor.LEFT);     
  94.         intervalmarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);     
  95.         intervalmarker.setPaint(new Color(222222255128));     
  96.         categoryplot.addRangeMarker(intervalmarker, Layer.BACKGROUND);     
  97.         NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();     
  98.         numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());     
  99.         BarRenderer barrenderer = (BarRenderer)categoryplot.getRenderer();     
  100.         barrenderer.setDrawBarOutline(false);     
  101.         barrenderer.setItemMargin(0.10000000000000001D);     
  102.         GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, Color.lightGray);     
  103.         GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, Color.lightGray);     
  104.         GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, Color.lightGray);     
  105.         barrenderer.setSeriesPaint(0, gradientpaint);     
  106.         barrenderer.setSeriesPaint(1, gradientpaint1);     
  107.         barrenderer.setSeriesPaint(2, gradientpaint2);     
  108.         barrenderer.setItemLabelGenerator(new LabelGenerator());     
  109.         barrenderer.setItemLabelsVisible(true);     
  110.         ItemLabelPosition itemlabelposition = new ItemLabelPosition(ItemLabelAnchor.INSIDE12, TextAnchor.CENTER_RIGHT, TextAnchor.CENTER_RIGHT, -1.5707963267948966D);     
  111.         barrenderer.setPositiveItemLabelPosition(itemlabelposition);     
  112.         ItemLabelPosition itemlabelposition1 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.CENTER_LEFT, TextAnchor.CENTER_LEFT, -1.5707963267948966D);     
  113.         barrenderer.setPositiveItemLabelPositionFallback(itemlabelposition1);     
  114.         CategoryAxis categoryaxis = categoryplot.getDomainAxis();     
  115.         categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);     
  116.         return jfreechart;     
  117.     }     
  118.      
  119.     public static JPanel createDemoPanel()     
  120.     {     
  121.         JFreeChart jfreechart = createChart(createDataset());     
  122.         return new ChartPanel(jfreechart);     
  123.     }     
  124.      
  125.     public static void main(String args[])     
  126.     {     
  127.         Log.getInstance().addTarget(new PrintStreamLogTarget());     
  128.         TextUtilities.setUseFontMetricsGetStringBounds(false);     
  129.         BarChartDemo7 barchartdemo7 = new BarChartDemo7("Bar Chart Demo 7");     
  130.         barchartdemo7.pack();     
  131.         RefineryUtilities.centerFrameOnScreen(barchartdemo7);     
  132.         barchartdemo7.setVisible(true);     
  133.     }     
  134. }   

沒有留言:

張貼留言

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!