今天闲着无聊,看了看http://www.open-open.com/open66558.htm ,先是研究了下Substance,竟然能做出类APPLE和XP的界面~,不知道在LINUX下面是不是也一样,感觉应该没社么问题(嘿嘿,明天去单位试试,然后再写一篇关于SWING界面的东西).后来一眼看见了GUI4J,后来才知道这个东东已经出了很久时间各.哎~米办法,谁叫偶刚出道呢~.废话不说,进入正题.
写WEB的有STRUTS有SPRING,写SWING的呢?貌似没一个标准,多数都是自由发挥,所以说SWING灵活嘛..为了提高开发效率和开发协调性,为社么不引进一个类STRUTS的架构呢~(显然没有主流,哪怕是即将介绍的GUI4J).其实多这个开源组件的产生兴趣是由于公司里的一个软件,由于是采用C++和JAVA的数据共享,无可厚非的用上了百油精XML(现在可谓是MVC到了及至,到哪里都是配置文件).通过解析XML,获取数据后,用JAVA将组件画出来,工程很大,导致耗用系统资源巨大.(看了PM的一个修改日志,竟然因为内存使用过大而内存益出了,最后只能关了SWING的双缓冲)==>所以觉得既然有现成的为啥不用的,(当然越到后面有点觉得GUI4J并不完善,所以说是未来的架构)
对于GUI4J来说,说白了也就是用DOM4J解析XML然后再画出来,无非也只有这个途径,不同的是自己写和用现成的,在维护和性能上会有大大的提高,必然牺牲的灵活性(所以有时候别人说SWING比起SWT灵活很多,并非是件好事情).对于GUI4J提供了LOG4J日志管理,当然你用不到的话也没必要去用.
一个简单的GUI4J应用可以只有3个部分组成1.gui4jComponents.properties 该文件其实是指GUI4J所支持的组建,所有的应用中都是一致的2.main.xml这个其实就是核心文件了,里面记录着界面的组成.当然你也可以搞个DTD文件来验证main.xml的合法性(其实没必要,何必为自己好麻烦呢)3.main.java
启动类
package org.gui4j.examples.quickstart;
import java.net.URL;
import org.gui4j.Gui4j;import org.gui4j.Gui4jController;import org.gui4j.Gui4jFactory;import org.gui4j.Gui4jView;import org.gui4j.exception.Gui4jExceptionHandler;
public class Main implements Gui4jController{ private Gui4j gui4j; private Gui4jView gui4jView;
public static void main(String[] args) { Main main = new Main(); main.run(); } private void run() { // initializing URL url = Main.class.getResource("gui4jComponents.properties"); int numberOfWorkerThreads = -1; boolean validateXML = true; boolean logInvoke = false; gui4j = Gui4jFactory.createGui4j(validateXML, logInvoke, numberOfWorkerThreads, url); // creating the view String resourceName = "main.xml"; String title = "My first application"; boolean readOnlyMode = false; Gui4jController controller = this; gui4jView = gui4j.createView(resourceName, controller, title, readOnlyMode); // displaying the view gui4jView.prepare(); gui4jView.show(); } public boolean onWindowClosing() { return true; } public void windowClosed() { System.exit(0); }
public Gui4jExceptionHandler getExceptionHandler() { return null; } public Gui4j getGui4j() { return gui4j; }}其他配置文件在http://www.gui4j.org/quickstart.html都能找到,我也不说了,毕竟盗版没正版好
当你跑成功就会发现有点MVC的味道出来了,有点STRUTS架构的相似出来了.一样的用XML来作为数据
源,良好的分离,对于那些不得不用XML作为画图数据来源的人来说值得研究.毕竟在中国做桌面的不多,
多数的都是嵌入式的,LINUX和JAVA的组合
嘿嘿 小谈下,实在累了~大家新年快乐,明天就要上班楼