托经济危机的福,终于有时间更新我的 Grape 了。Grape 到底是什么?大家看看 Grape 核心就知道了。Grape 的核心包括数据库的封装、ORM(在1.0版本中针对ORM仅做了最简单的实现,将在下一版本中完善)、拦截器、文件控制、XML解析、对象实例化及注射(反射)、基础的验证管理、Swing 事件的封装以及Swing 界面的封装等。上述的核心代码都已经完成并进行了简单的测试。目前正在利用 Grape 开发一个 Swing 的桌面应用程序,程序的主界面和最为基本功能已经实现。
在利用 Grape 进行开发时,解决了一些问题,也发现了一些更好的实现方法。这两天,将针对 Grape 的核心代码进行了重构,使代码更加清晰,结构也更加合理,当然在性能上也有所提升。另外将原有的组件属性的实现从代码中提取到 XML 配置文件中进行配置,当 Grape 实例化组件时注入对象中。这样做的好处是可以在不需修改代码更不需编译应用程序就可以轻易地修改组件的表现形式。更重要的是,不需要再针对每个组件都写一个 class ,最大化地实现代码重用。比如应用程序有新建和打开两个菜单项,按照传统的做法是生成两个 MenuItem 对象,并设置其 Text 等属性。利用 Grape ,只要在配置文件中简单地配置一下即可。如下:
- <!– 新建 –>
- <view id="menuNewDB" class="mxjava.com.grape.core.ui.menu.MenuItem"
- title="grape.menu.file.new.db" toolTip="grape.menu.file.new.db"
- icon="newdb" accelerator="78,2,false"/>
- <!– 打开 –>
- <view id="menuOpenDB" class="mxjava.com.grape.core.ui.menu.MenuItem"
- title="grape.menu.file.open.db" toolTip="grape.menu.file.open.db"
- icon="open" accelerator="79,2,false"/>
在上面的配置中,title 是用来显示在菜单的上文字,toolTip 是鼠标移动到菜单上时显示的说明文字,icon 即菜单的图标,accelerator 即菜单的快捷键。
将对象的属性从代码中移到配置文件中的做法在 Java 应用中是常见的,利如 Strats、Hibernate 等框架的数据库配置。利用这一点,我们不仅可以将菜单的属性提取到配置文件中,也可以将窗口、工具栏等任何组件的初始属性配置到配置文件中,使应用程序更容易被改变。
再如要实现我们经常使用的写字板的文字大小下拉列表框,可以用以下配置。
- <!– 文字大小工具栏 –>
- <view id="fontSize" class="mxjava.com.grape.core.ui.toolbar.ToolComboBoxItem"
- focusable="false" enabled="false" size="50,25">
- <param class="java.lang.String" value="8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72"/>
param 即组件的默认的值。如果你希望文字更大一些,可以修改 value 来达到目的。
| 五冠 Nokia/诺基亚 5230 5230XM 送证书V20版 内有港行 销数千台 | ||
| 1000.0元 | ||
| 批发 雷朋3025镜面反光太阳镜 太阳眼镜 19.9/副 顶级质量 | ||
| 19.9元 | ||
| 促销笔记本电脑 13.3英寸超薄N450无线网卡视频 | ||
| 1999.0元 | ![]() | |





