JavaSwing程序-二维码转换器
这几天有想法要用javaSwing写个小程序,我就想到了当今应用广泛的二维码,于是就着手写了以下的二维码转换器:
功能主要为生成,转换,导出,导入四个:
- 生成:把二维码内容框中的文字生成为二维码
- 转换:把二维码图片框中的图片解析为文字
- 导出:把转换后的图片保存到本地
- 导入:从硬盘导入二维码用于转换
我想到的业务逻辑有:
- 1.生成二维码时不允许输入框为空:
- 2.当然,二维码的长度也不能超过图片所容纳的长度,在输入了三百多个字符之后,就可能会报以下错误:
- 3.得先导入图片才能进行转换,在导入图片之后,底下会有一行红字显示图片的路径,方便查看
- 4.生成图片后才能使用导出功能
- 5.如果图片不是二维码就转换不了
代码实现起来过程不难,但是我却走了不少弯路,以下是我做这程序中遇到的问题:
1.路径问题: java识别不了空格字符,通过一方法转换为url才能识别: 使用toURL()方法,此方法此方法会自动转义 URL 中的非法字符,就是把这字符串当成url来用,这样空格问题就解决了; 示例:
- 2.图片比例与加载问题: 要在界面上按照我设定的比例来显示图片,我使用了Image类的getScaledInstance方法,此方法可以返回一个新的图片对象,并且按照我给定的比例来显示,还有一个好处是能异步加载; 示例:
1
icon.setImage(icon.getImage().getScaledInstance(190, 190, Image.SCALE_DEFAULT));
- 3.打包问题: 我使用的工具是exe4j + Inno Setup java代码号称一次编译,到处运行,可是在没有装上jdk的电脑上就不能使用了,解决此问题的方法是:用exe4j打包成exe的文件选jre的时候不要选环境变量中的jre,因为这只是自己的电脑,别人电脑的就不一致了。在选定jre时,把jre1.6版本拷贝到项目下,使用相对路径访问。然后用Inno Setup打包成安装文件时把在此相对路径下的jre也包含进去,这样就能实现“一次编译,到处运行”了。
This post is licensed under CC BY 4.0 by the author.