10.JFreeChart数据库接口
  TEZNKK3IfmPf 2023年11月14日 25 0

从数据库表中读取简单的数据,然后 JFreeChart 使用这些数据来创建图表。

10.1 测试数据

10.JFreeChart数据库接口

10.2 基于swing的应用

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
​
import javax.swing.*;
import java.io.IOException;
import java.sql.*;
​
public class LineChart {
    public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {
​
        //连接数据库
        Class.forName("com.mysql.jdbc.Driver");
        String url="jdbc:mysql://localhost:3306/myDB";
        String username="root";
        String password="admin";
        Connection con= DriverManager.getConnection(url,username,password);
        Statement statement=con.createStatement();
        ResultSet rs=statement.executeQuery("select name,age from Students");
        //创建数据集
        DefaultCategoryDataset dataset=new DefaultCategoryDataset();
        while(rs.next()){
            dataset.setValue(
                    rs.getInt("age"),
                    "年龄",
                    rs.getString("name")
            );
        }
​
        // 创建简单的条形图
        JFreeChart freeChart=ChartFactory.createBarChart(
                "学生信息",// 图表标题
                "姓名",
                "年龄",
                dataset,//数据集,即要显示在图表上的数据
                PlotOrientation.VERTICAL,
                true,//是否显示图例
                false,//是否显示提示
                false//是否生成URL连接
        );
​
        //以面板显示,创建一个图表面板
        ChartPanel chartPanel=new ChartPanel(freeChart);
        //设置大小
        chartPanel.setPreferredSize(new java.awt.Dimension(560,400));
​
        //创建一个主窗口来显示面板
        JFrame frame=new JFrame("条形图");
        frame.setLocation(500,400);
        frame.setSize(600,500);
​
        //将图表面板设置为主窗口的内容面板
        frame.setContentPane(chartPanel);
​
        //显示主窗口
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

结果展示:

10.JFreeChart数据库接口

10.3 创建图像

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
​
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.*;
​
public class Chart {
    public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {
​
        //连接数据库
        Class.forName("com.mysql.jdbc.Driver");
        String url="jdbc:mysql://localhost:3306/myDB";
        String username="root";
        String password="admin";
        Connection con= DriverManager.getConnection(url,username,password);
        Statement statement=con.createStatement();
        ResultSet rs=statement.executeQuery("select name,age from Students");
        //创建数据集
        DefaultCategoryDataset dataset=new DefaultCategoryDataset();
        while(rs.next()){
            dataset.setValue(
                    rs.getInt("age"),
                    "年龄",
                    rs.getString("name")
            );
        }
​
        // 创建简单的条形图
        JFreeChart freeChart=ChartFactory.createBarChart(
                "学生信息",// 图表标题
                "姓名",
                "年龄",
                dataset,//数据集,即要显示在图表上的数据
                PlotOrientation.VERTICAL,
                true,//是否显示图例
                false,//是否显示提示
                false//是否生成URL连接
        );
​
        //使用输出流输出图表文件
        //输出JPG文件
        OutputStream os=new FileOutputStream("c:/picture.jpg");
        ChartUtilities.writeChartAsJPEG(os,freeChart,500,500);
        //输出PNG文件
        OutputStream os_png=new FileOutputStream("c:/pictrue_png.png");
        ChartUtilities.writeChartAsPNG(os_png,freeChart,500,500);
    }
}

结果展示:

10.JFreeChart数据库接口

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月26日   56   0   0 java数据库sql
  TEZNKK3IfmPf   2024年05月31日   26   0   0 sqlite数据库
  TEZNKK3IfmPf   2024年05月31日   31   0   0 数据库mysql
  TEZNKK3IfmPf   2024年05月31日   27   0   0 数据库mysql
TEZNKK3IfmPf