jfreechar-中文亂碼-設置字體解決

/**
 * @Title:JfreeChartOne.java
 * @Package:cn.sh.jfreechar.test
 * @Description:TODO
 * @author:Administrator
 * @date:2012-2-22下午04:31:09
 * @version V1.0 
 *
 */
package cn.sh.jfreechar.test;

import java.awt.Font;  
import javax.swing.JPanel;  
import org.jfree.chart.ChartFactory;  
import org.jfree.chart.ChartPanel;  
import org.jfree.chart.JFreeChart;  
import org.jfree.chart.plot.PiePlot;  
import org.jfree.chart.title.LegendTitle;  
import org.jfree.chart.title.TextTitle;  
import org.jfree.data.general.DefaultPieDataset;  
import org.jfree.data.general.PieDataset;  
import org.jfree.ui.ApplicationFrame; 
/**
 * 餅圖-亂碼處理-通過設置字體 解決
 * @ClassName:JfreeChartOne
 * @Description:TODO
 * @author: Administrator
 * @date:2012-2-22下午04:35:30
 */
public class JfreeChartOne extends ApplicationFrame {      
    private static final long serialVersionUID = 1L;

    public JfreeChartOne(String s){          
        super(s);          
        setContentPane(createJPanel());      
    } 

    public static void main(String[] args) {          
        JfreeChartOne one = new JfreeChartOne("CityInfoPort公司組織架構圖");          
        one.pack();          
        one.setVisible(true);      
    }      

    /**
     *  利用靜態方法設定數據源(餅狀圖) 
     */
    public static PieDataset createPieDataset() {

        DefaultPieDataset defaultpiedataset = new DefaultPieDataset();          
        defaultpiedataset.setValue("管理人員", 10.02D);          
        defaultpiedataset.setValue("市場人員", 20.23D);          
        defaultpiedataset.setValue("開發人員", 60.02D);          
        defaultpiedataset.setValue("OEM人員", 10.02D);          
        defaultpiedataset.setValue("其他人員", 5.11D);          
        return defaultpiedataset;  

    }      

    /**
     * 通過ChartFactory創建JFreeChart的實例  
     */
    public static JFreeChart createJFreeChart(PieDataset p){  

        JFreeChart a = ChartFactory.createPieChart(
                "CityInfoPort公司組織架構圖", 
                p,                  
                true, 
                true, 
                true
                );          
        // JFreeChart主要由三個部分構成:title(標題),legend(圖釋),plot(圖表主體)。         
        //三個部分設置字體的方法分別如下:          
        TextTitle textTitle = a.getTitle();          
        textTitle.setFont(new Font("宋體", Font.BOLD, 20));          
        LegendTitle legend = a.getLegend();          
        if (legend != null) {              
            legend.setItemFont(new Font("宋體", Font.BOLD, 20));          
            }          
        PiePlot pie = (PiePlot) a.getPlot();          
        pie.setLabelFont(new Font("宋體", Font.BOLD, 12));          
        pie.setNoDataMessage("No data available");          
        pie.setCircular(true);          
        pie.setLabelGap(0.01D);// 間距          
        return a;      
    }  

    public static JPanel createJPanel() {  
        JFreeChart jfreechart = createJFreeChart(createPieDataset());          
        return new ChartPanel(jfreechart); 
    }  


}
 本文由用戶 林上夕下 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!