栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java桌面端实时分析系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java桌面端实时分析系统

背景

主要针对不同传感器的监测数据,从数据库实时获取,根据业务相关公式进行实时求解并绘制曲线图;

技术栈

开发语言:java+mdb
视图层:javafx,该语言包再jdk1.8以后已经独立出来,有需求的可自行查阅,jdk11以上javafx的使用方式。
框架:折线图框架用到的是开源框架jfreechart-1.5.0,模板所用框架freemarker-2.3.4
数据源:mdb格式,mysql数据源。

JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

程序部分界面

导出报告

导出报告用到了freemarker,该模板框架上手容易,比较适合报告格式固定的需求,例如本系统所需报告格式固定,只需要将word报告模板定义好,另存为xml格式,修改文件后缀为ftl即可。

package baogao;

import com.aspose.words.Document;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Node;
import javafx.scene.SnapshotParameters;
import javafx.scene.image.WritableImage;

import javax.imageio.ImageIO;
import java.awt.image.RenderedImage;
import java.io.*;
import java.util.Locale;


public class WriteBaoGao {
    
    public static ByteArrayInputStream createHtmlFromStringList(WordBean wordbean) {
        FileWriter out = null;
        StringWriter writer = new StringWriter();
        ByteArrayInputStream in = null;
        try {
            Configuration config=new Configuration();
            config.setDefaultEncoding("UTF-8");


            //模板文件
            String pat=System.getProperty("user.dir")+"\reource\";
//            File file = new File(pat+"demo.ftl");
            config.setDirectoryForTemplateLoading(new File(pat));
            config.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);


            //获取模板
            Template template = config.getTemplate("demo.ftl");
            //构造输出路 最好带时间,防止生成报告打开后再次生成时,文件占用导致生成失败
//            SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd,HH-mm-ss");
//            String format = s.format(new Date());
//            out = new FileWriter(path+"\"+format+".doc");
//            out = new FileWriter(path);
            //生成HTML
            template.process(wordbean, writer);
            writer.flush();
            in = new ByteArrayInputStream(writer.toString().getBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TemplateException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {

            if(null != out) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return in;
    }

    public static String getImageStr(String imgFile) {
        InputStream in = null;
        byte[] data = null;
        try {
            in = new FileInputStream(imgFile);
        } catch (FileNotFoundException e) {
//            log.error("加载图片未找到", e);
            e.printStackTrace();
        }
        try {
            data = new byte[in.available()];
            //注:FileInputStream.available()方法可以从输入流中阻断由下一个方法调用这个输入流中读取的剩余字节数
            in.read(data);
            in.close();
        } catch (IOException e) {
//            log.error("IO操作图片错误", e);
            e.printStackTrace();
        }
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);

    }

    public static void main(String[] args) {
//        createHtmlFromStringList(null);
    }

    public static void CramerCanvesImg(Node node, String path, SnapshotParameters snapshotParameters){

        WritableImage image=node.snapshot(snapshotParameters,null);
        RenderedImage bufferedImage = SwingFXUtils.fromFXImage(image, null);
        try {
            ImageIO.write(bufferedImage,"png",new File(path));
        } catch (IOException e) {
            e.printStackTrace();
        }

    }


}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/978800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号