不论是swing、awt、swt/Jface,java图形界面编程对一个没有很多经验的人来说总是很诡异(广峰这样形容的^_^),第一是layout,第二是外观的热插拔。我现在在做一个能轻易换皮肤的软件,想了很多方案,总是被否决,因为我所想到的方案都是着眼于特定的软件,我需要更通用的解决方案。

中午上编译原理的时候看《程序员》杂志。看到关于开源的Mozilla架构分析。豁然大悟,为什么不用CSS来描述皮肤(外观)呢,然后用html描述股价。这样我们只需要一个编译器(hoho~我们就是在上编译原理哦),把html翻译成java代码。就像当年Google用gwt把java程序翻译成JavaScript(Google Map和gmail就是这么来的)。

可行性分析:

■基于CSS+HTML的网页已经能给我们提供良好的外观描述(先别谈事件处理),就比如现在你在看的这个网页,用CSS+HTML很轻易的就能实现,再加上类似Dreamweaver之类的软件的帮助就更简单的,而如果用java代码实现,恐怕还是有一定难度吧,元素太多,而且layout很困难。而且界面风格很轻易的就能通过CSS改变。就好像现在用的百度空间还有校内网,都允许大家通过自定义CSS改变界面风格,可是如果是java程序就比较困难了吧~

■浏览器解析CSS+HTML,并且展示这个界面(GUI)给我们看见,输入是纯文本的CSS+HTML,输出是现在看见的GUI,呵呵,说到底,我是想造一个“浏览器”,只不过这个浏览器有点特殊,输出的是java代码。

回头想一想,j2me polish用的css描述外观不就是这个思想吗?!当时一直不明白为什么,现在我居然也想到了这种解决方案,只不过一个是用在j2me上,一个是j2se上。!

总结一下:

·基本思想:用html控制骨架元素,用css控制元素外观。

·优点:容易控制layout,网页设计工具比较成熟,支持外观的热插拔。

·展望:一个eclipse的插件,可以借鉴myeclipse设计网页的那个插件,改造一个可视化生成网页(html+css)的东西,然后再把这个东西编译成java文件,我想底层用swt/jface比较好吧,先别提效率优势,主要是好看。

·计划:我现在要去复习功课,快考试了,放寒假又有别的安排,等我回来又得准备考研了,就没有时间了。所以我先把暂时想到的记录下来。等有时间了再说吧。

-————————————————————————————————–

真是无知,,看看那些开源的东西吧!

http://www.open-open.com/24.htm