Welcome 微信登录

首页 / 软件开发 / JAVA / 寄生型设计模式在Swing应用开发中的实践

寄生型设计模式在Swing应用开发中的实践2013-09-19 IBM 宋 荆汉问题背景

在基于 Java 开发的电信级系统中,会有大量的 GUI 界面设计工作,但众所周知 Java 的目前的 IDE 解决方案对 Swing 界面开发支持的友好性不尽如人意,要做出友好的界面还是要耗费大量的时间,对有些模块可能比业务 逻辑的工作量还要大。所以,现在对于 GUI 界面比较多的系统中,很多公司都会用到界面引擎和 XML 方式来自动生成界面 ,优点在于:

1、使用 XML 文档描述界面,通过界面生成引擎来解释 XML 文档并最终产生显示的界面。这使得开发 界面更加容易,界面风格更加一致,维护更加方便。

2、实现了功能代码和界面代码的分离,使它们之间的耦合性减 小,这也降低了故障发生的概率,提高了软件的重用率,减少了代码 Java 代码数量。

其基本实现原理见下图 1:

图 1.XML 文件自动生成界面的原理

具体的界面引擎代码看 GUIEngine.java 文 件。

我们给一个简单的界面描述文件的范例见如下清单 1:

清单 1. XML 界面描述文件实例

<?xml version="1.0" encoding="GB2312"?> <gui_desc><init><window_width>260</window_width><window_height>230</window_height> </init><component type="javax.swing.JLabel"><height>45</height><label>UPS Type</label><name>labeltest</name><positionY>12</positionY><width>230</width><positionX>12</positionX></component><component type="javax.swing.JTextField"><height>45</height><default_value>0</default_value><name>txttest</name><positionY>67</positionY><width>230</width><positionX>12</positionX></component><component type="javax.swing.JButton"><name>btnOK</name><width>91</width><action>OutdoorUPS_OkAction</action><disable /><positionY>132</positionY><positionX>12</positionX><icon>ok.gif</icon><label> 确定 </label><height>23</height></component><component type="javax.swing.JButton"><name>btnCancel</name><width>91</width><action>CancelAction</action><disable /><positionY>132</positionY><positionX>112</positionX><icon>cancel.gif</icon><label> 取消 </label><height>23</height></component> </gui_desc>
通过程序创建显示出来的 Swing 界面如下图 2:

图 2 .XML 描述文件生成的界面