【客户端】采用swing编写代码生成器的故事

时间:2023-01-28 18:08:16

【前言】

这个代码生成器恐怕是好事多磨了,我一直做了两个月,最主要是没有确定开发环境及客户端技术,光是客户端技术就已经试过winform,wpf,gtk#,swing,后来终于确定为swing并且持续进行开发,终于有所成果,下面是一系列旧的代码生成器相关文章,假如大家有兴趣看看开发历程的话,可以去看看:

【java工具】使用jdbc访问数据库获取某个存储过程信息及下面参数信息

【代码生成】如何生成自定义表单?(1)

【代码生成】如何生成自定义表单?(2)---基础数据及注解

【代码生成】如何生成自定义表单?(3)---将用户模型及注解转换成为表单数据

【代码生成】如何生成自定义表单?(4)---几个模板及格式

【代码生成】如何生成自定义表单?(5)---如何使用及使用效果

【java】递归遍历获取模型所有参数及复杂模型下面所有参数

【分享】分享一个swing做的代码生成器---还需要改进,代码未稳定。


ok,上面就是为了这个代码生成器而写的文章,都是一些旧文章,可看可不看,下面我将补完一些开发文档,然后告诉大家swing其实还是很好用的,就是门槛有点高。

【需求】

实际上需求只有一个,就是生成代码,代码生成器是建立在拥有一定项目框架上面的,我的做法是,编写相关模板,然后传递表单信息,列信息等给模板,让模板自行解析。

下面说说相关难点及技术。

【模板引擎】

这里不得不说一下java的好处了,我用c#开发的时候虽然也有模板引擎,譬如:StringTemplate,NVleocity,razor等等,但是有一个缺陷就是,感觉成熟程度不如java的模板引擎,并且,绝大部分模板引擎都没有ide支持,nvelocity我试过用来编写一个网站,模板的编写是噩梦,一个命令写错了都出错,并且没有提示。razor虽然有提示,但是要在单独的winform下使用要经过一系列设置,有兴趣的同学可以看看下面这文章:

【搬运外国同行文章】在非网页程序里使用razor模板引擎


后来我采用java的velocity及配套的Intellij ide才觉得这才是开发商业应用的组合。关于velocity的配置及应用,各位有兴趣的话可以看看我的这篇博文:

【java工具类】对velocity的封装


这里说一说一个难点,在开发时候经常遇到的,那就是如何找到资源,如何定位资源?

通常项目里面的资源,譬如图片,会放在一般目录下面还有放在jar文件,两种放置方式的获取方法不一致。这两种获取路径方式--我个人的方式是以一个类作为基准,获取路径,您可以参考这篇博文:

【java辅助类】如何获取普通类或者jar的路径?


【swing编写】

swing的布局是一个难点,我建议使用eclipse的windowbuilder来进行布局,里面的formlayout(jgoodies的)非常好用。


下面将最新版的截图放出来,顺便给大家下载使用:

(比旧版多了每一个参数的验证规则,中文名称等设置)

【客户端】采用swing编写代码生成器的故事

主界面(同样采用sqlite来存放常见连接,连接的添加修改删除管理页面就不截图了,跟以前一样)

【客户端】采用swing编写代码生成器的故事


这个是enum枚举类的wrapper生成界面,大家假如用过velocity就会发现,velocity不支持枚举类及静态了,所以编写wrapper就成为必须而又乏味的一件苦活。


【客户端】采用swing编写代码生成器的故事

生成的结果。


【客户端】采用swing编写代码生成器的故事


【客户端】采用swing编写代码生成器的故事


某个表的参数列表


【客户端】采用swing编写代码生成器的故事


参数的验证规则,显示方式设置。


【客户端】采用swing编写代码生成器的故事


假如包含子表,那么子表的设置。


ok,我上传上去看看。


swing版代码生成器1.2