• JfreeChart 乱码问题处理


    在前面之间加上下面这段代码即可。

        	//创建主题样式     
            StandardChartTheme standardChartTheme=new StandardChartTheme("CN");
            //设置标题字体     
            standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));     
            //设置图例的字体     
            standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));     
            //设置轴向的字体     
            standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));     
            //应用主题样式     
            ChartFactory.setChartTheme(standardChartTheme);
    

    为了验证,先给出没有上面代码的一串代码:

    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.axis.CategoryAxis;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    import org.jfree.ui.ApplicationFrame;
    
    public class JFreeChartTest2 extends ApplicationFrame
    {
        public JFreeChartTest2(String title)
        {
            super(title);
            this.setContentPane(createPanel()); //构造函数中自动创建Java的panel面板
        }
        
        public static CategoryDataset createDataset() //创建柱状图数据集
        {
            DefaultCategoryDataset dataset=new DefaultCategoryDataset();
            dataset.setValue(10,"a","管理人员");
            dataset.setValue(20,"b","市场人员");
            dataset.setValue(40,"c","开发人员");
            dataset.setValue(15,"d","其他人员");
            return dataset;
        }
        
        public static JFreeChart createChart(CategoryDataset dataset) //用数据集创建一个图表
        {
            JFreeChart chart=ChartFactory.createBarChart("hi", "人员分布", 
                    "人员数量", dataset, PlotOrientation.VERTICAL, true, true, false); //创建一个JFreeChart
            chart.setTitle(new TextTitle("某公司组织结构图",new Font("宋体",Font.BOLD+Font.ITALIC,20)));//可以重新设置标题,替换“hi”标题
            CategoryPlot plot=(CategoryPlot)chart.getPlot();//获得图标中间部分,即plot
            CategoryAxis categoryAxis=plot.getDomainAxis();//获得横坐标
            categoryAxis.setLabelFont(new Font("微软雅黑",Font.BOLD,12));//设置横坐标字体
            return chart;
        }
        
        public static JPanel createPanel()
        {
            JFreeChart chart =createChart(createDataset());
            return new ChartPanel(chart); //将chart对象放入Panel面板中去,ChartPanel类已继承Jpanel
        }
        
        public static void main(String[] args)
        {
            JFreeChartTest2 chart=new JFreeChartTest2("某公司组织结构图");
            chart.pack();//以合适的大小显示
            chart.setVisible(true);
            
        }
    }
    

    执行结果如下:

    再给出加了那段代码的这块代码:

    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.StandardChartTheme;
    import org.jfree.chart.axis.CategoryAxis;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    import org.jfree.ui.ApplicationFrame;
    
    public class JFreeChartTest2 extends ApplicationFrame
    {
        public JFreeChartTest2(String title)
        {
            super(title);
            this.setContentPane(createPanel()); //构造函数中自动创建Java的panel面板
        }
        
        public static CategoryDataset createDataset() //创建柱状图数据集
        {
            DefaultCategoryDataset dataset=new DefaultCategoryDataset();
            dataset.setValue(10,"a","管理人员");
            dataset.setValue(20,"b","市场人员");
            dataset.setValue(40,"c","开发人员");
            dataset.setValue(15,"d","其他人员");
            return dataset;
        }
        
        public static JFreeChart createChart(CategoryDataset dataset) //用数据集创建一个图表
        {
            JFreeChart chart=ChartFactory.createBarChart("hi", "人员分布", 
                    "人员数量", dataset, PlotOrientation.VERTICAL, true, true, false); //创建一个JFreeChart
            chart.setTitle(new TextTitle("某公司组织结构图",new Font("宋体",Font.BOLD+Font.ITALIC,20)));//可以重新设置标题,替换“hi”标题
            CategoryPlot plot=(CategoryPlot)chart.getPlot();//获得图标中间部分,即plot
            CategoryAxis categoryAxis=plot.getDomainAxis();//获得横坐标
            categoryAxis.setLabelFont(new Font("微软雅黑",Font.BOLD,12));//设置横坐标字体
            return chart;
        }
        
        public static JPanel createPanel()
        {
            JFreeChart chart =createChart(createDataset());
            return new ChartPanel(chart); //将chart对象放入Panel面板中去,ChartPanel类已继承Jpanel
        }
        
        public static void main(String[] args)
        {
    		// 创建主题样式
    		StandardChartTheme standardChartTheme = new StandardChartTheme("CN");
    		// 设置标题字体
    		standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));
    		// 设置图例的字体
    		standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 15));
    		// 设置轴向的字体
    		standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 15));
    		// 应用主题样式
    		ChartFactory.setChartTheme(standardChartTheme);
            JFreeChartTest2 chart=new JFreeChartTest2("某公司组织结构图");
            chart.pack();//以合适的大小显示
            chart.setVisible(true);
            
        }
    }
    

    执行结果如下:

    说明:上面的代码来源于网络,并非本人原创,特此声明,仅供参考学习。

  • 相关阅读:
    xss攻击和csrf攻击的定义及区别
    php中Redis的扩展
    MySQL事务特性
    PHP的设计模式
    http协议
    sql语句的优化
    mysql存储引擎
    laravel框架安装Curl扩展
    laravel框架中安装 elasticsearch 包
    docker容器配置nginx负载均衡 -----加权
  • 原文地址:https://www.cnblogs.com/KeepZ/p/11919602.html
Copyright © 2020-2023  润新知