Java桌面技术

Java Desktop Technology

常用链接

统计

友情连接

最新评论

打造专业外观-九宫图

    长久以来,Java被认为是服务器端的佼佼者,而在客户端方面不被看好,特别地MicroSoft的Windows系列几乎垄断了桌面应用。所以在大多数人看来只要一提起开发客户端,首先想到的是VB、Delph。拒绝Java的原因无非是速度慢、Swing外观丑陋这2点。对于前者已经成为历史了,而对于后者,抱怨Java设计的界面丑陋的那些人一定桌面开发经验浅显、或者只会依赖VB那种托拽生成组件的那些非高手。再有可能就是传统桌面开发员中的VB忠实fans,他们不愿意接受新东西。其实目前而言,Java开发桌面应用不仅能将上述缺点消除,Java最重要的是能够跨平台运行,这是其他语言不能达到的,如果客户端使用VB开发的话,那么还可能要考虑系统其他部分的开发是否也要用VB或者微软支持的产品。目前用Java语言开发的客户端已不少见,IBM Lotus旗下的Sametime系列就是很好的例子,虽然其7.5已经将界面全部改为SWT实现而不再是AWT,但至少能说明Java作为桌面开发绝不是弱者。而且调查显示Visual Basic开发用户直线下降。详见http://blog.sina.com.cn/s/blog_4b6047bc010006v9.html

    对于一般界面需求而言,简单的桌面组件完全可以满足用户的需求,这些简单至极的组件已经被集成进组件托盘中了,如果你用netbeans或者安装Eclipse的VE插件,完全可以只通过托拽的方式将组件生成并放置在指定的地方。至多需要你对常用布局管理器有少许了解。但是单凭这些现有的玩意很难打造出专业的外观。比如一个顶层窗口,如果你用swing组件库中的JFrame或SWT中的Shell,那么它的外观充其量和本地的外观一致,这个本地化外观有窗口的标题栏,标题栏文字出现的位置,Windows是图标左对齐,Solaris是居中,和默认的最小化、最大化、关闭等按钮。另外还有固定尺寸和外观的边框,尽管在Windows Vista中这些元素已经很美观,但是某些软件如即时通讯类软件,美工一定会单独设计出一套截然不同的外观叫你去实现。就拿一个窗口来说,如下图:

我从事Java桌面相关的工作有1年半了,起初我依赖JButton、JScroll等基础组件,BorderLayout、FlowLayout等现成的布局管理器企图能实现类似MSN的外观效果,但是实际看来是完全不可能的,所以我当时就下了这样的结论,哪怕现在我依然认为是正确的:“抛弃所有的外观设计工具和一切现有的桌面组件及布局管理器,一切的一切必须自定义实现,设计工具最多能替你完成一半”。所以当时界面部分的代码是我一行一行写出来的,为了不做重复的劳动,定义了不少组件如Button,CheckBox,ComboBox(参见用SWT实现MSN风格的下拉框)、Slider(参见SWT自定义组件之Slider)。
布局管理器完全不用,因为它会给你的组件布局带来很大限制。取而代之的是为容器组件添加ComponentListener监听器(SWT的实现是ControlListener)。
下列是我基于这个理念开发的界面截图。







    
    



    
    作为打造专业外观的第一步,应该学会如何去分解。介绍一种常见的分解方法——九宫格。如下图所示


九宫格的设计思想是将组件分成9个组成部分,四个边、四个角、中心部分作为内容放置其他组件。为了叙述方便,这9个部分依次取名为northwest(左上)、northeast(右上)、north(北)、southwest(左下)、southeast(右下)、south(南)、west(西)、east(东)、content(中心内容窗格)。
这9个部分的布局不难理解,例如northwest始终位于左上,无论窗口大小如何变动northwest都不会改变大小和位置;同理northeast始终位于右上位置;而north的左边紧贴northwest的右端、右边紧贴northeast的左边,所以north的长度计算应该是窗口的长度减去northwest和northeast的长度之和。同理,剩下几部分的布局不难计算。
    还有一点是很重要的,如果你是用SWT组件,务必把Shell的样式设置成SWT.NO_TRIM,也就是说这样的顶层窗口没有标题栏和边框,一些由你来修饰。如果你用Swing,请使用JWindow而不是JFrame,道理同上。
    虽然上述实现界面程序是用SWT编写的,但是不代表SWT很强大,Swing才是王者,你可以这样理解,SWT这样的怪胎都能做出如此效果,Swing更没问题了。
    参考程序这里下载

    本文只是介绍了九宫格的概念,在实际开发中可能需要对九宫格分解法进行扩展,比如在九宫格的基础上再分解,粒度由你来掌握。演示程序窗口只是简单地实现了边框和内容窗格的渲染,不能拖拽移动和改变尺寸、没有标题和功能按钮,如果你仔细看还会发现边角没有被抹去,也就是说被有实现圆角窗口,这些功能会在后续的文章中一一介绍如何实现。

    至于上面所说UI代码一行一行写出来,是有些费事,对于这个问题我的看法是这样的:某些界面是不需要花大力气渲染的,比如说配置界面,没有哪些客户端要求那种界面也强调很酷的外观,所以对于简单的界面,可以借助工具生成代码,必定工具还是可以帮你做50%的事情。第二就积累一些组件库,比如自定义一些可重用组件,就像前面介绍的ComboBox和Slider,如果不能完全重用,至少可以将代码作为模板,少许改动就可变成另一套外观风格,研读前面介绍的ComboBox和Slider你会发现替换里面的图片或颜色常量就可轻松换肤,如果你的UI是基于swing的,那么你可以自定义L&F来实现基本的外观,关于L&F后面定会花大量时间整理出完整教程。第三就是利用配置的方式将UI组件的生成和布局从.java中移出来,这样不仅可以省去大部分代码量,而且配置文件简短易读的特点是众所周知的,Java Web项目的web.xml就是很好的例子,Spring就更不用说了。配置方式后面也会介绍。第四点,如果你只会VB、VC那种拖拽式开发,那你永远算不上高手,我曾经用MFC写程序时抱怨过“有那么多按钮却看不见一行CButton声明”,那会使你永远不了解底层是如何实现的,所以我不喜欢那种方式,如果你有能力,完全可以写一个Framework封装你的UI组件,配置生成的方式就是一例。

    今后还会写大量关于Java GUI方面的帖子,并且会和Sun工程研究院的陈维雷先生合作发布L&F技术贴,他的博客https://blogs.oracle.com/Swing/想必大家很熟悉了。虽然当今的web2.0时代人们很少关注C/S应用,但是一些高端应用仍旧采用C/S模式,浏览器这个通用客户端能做的事还很有限。而且Sun也开始向桌面进军,JDK1.6的进步就能很好地说明这一点,更另人兴奋的是Java桌面技术有添加了一个新成员——JavaFX,又有好消息称JDK7.0中的AWT将加入不规则窗体和半透明窗体的支持,希望有一天Swing能垄断桌面。

posted on 2007-11-03 17:56 sun_java_studio@yahoo.com.cn(电玩) 阅读(18185) 评论(45)  编辑  收藏 所属分类: NetBeansGUI Design

评论

# re: 打造专业外观-九宫图 2007-11-03 19:29 eddie

楼主太强大了。拜一个。
由于是Linux程序员出身,对GUI程序的设计一窍不通。最近正在自学,楼主给点建议罢。我觉得GUI程序如果真要自己写的话,太费时间了。可是用可视工具画的话,又感觉不理解原理,心里没有底气。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-03 22:31 BeanSoft

顶了! Office 啊, IM 啊, 说白了都是自定义组件, 自己画图. 游戏嘛, 也算是一种了. 楼主 GUI 高手呵呵.

如果仔细研究 XP 的换肤(桌面主题), 你也会发现是九宫格的布局, 一张图, 但是画的时候切成9块. 一个按钮需要6个图.  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-03 22:53 Matthew Chen

看楼主的文章,一时豁然开朗,gui原来可以是这样的,以前也下载过很多软件,最近才慢慢开始注意界面布局的特点和提供用户体验方面的东西,感觉欧美软件逐渐在界面上追求简单和易用,ComponentListener的思想有时比布局管理器容易和适合开发的需要。
楼主提到Java已经可以在桌面应用领域挑战C/C++,VB,Delphi等等,但是这类工具生成的是编译型的机器代码,具有高的执行效率和借助平台特有优势,尽管Java跨平台,又有JIT即时解释器在一定程度上提升运行速率,但是否语言级别和平台级别的一些瓶颈会成为它开发上的局限性呢,比如,我现在涉及对数据的压缩解压和即时取用,要求高响应的速度,我想可能的突破是好的算法实现,而这一层面上对数据结构的要求相对独特——针对位的操作,而Java的基本数据类型中,几乎是基于字节的,boolean在底层数据实现上也不例外(希望我没理解错),这在实现很多算法上并不理想,不知楼主的意见如何?
说到swt,我也先学了点swing再来学的,如果有说的不对的请指出,除了无法获得jdk的标准集成支持外,swt可以说在各个方面都胜过awt,之所以说awt是因为二者的实现是相似的对等体思路,swt在这方面作得很好了,那可以假设swt和awt在速度上是同一级别的东西,如果IBM现在搞基于swt基础之上的纯绘制桌面应用,就相当于在swing的同一级别之上,这方面IBM沾上边的象GEF,Draw2D可能有点联系吧,它有可能作到类似swing的程度和规模吗?就算不行差一点,但保持相同的速度级别我想还是有很大作用的,比较一下:awt是弱的,但基于其之上的swing是绘制一切无所不能的;swt是强的,而在其之上作为补充的纯绘制api也能成为其补充,在我看swt的介绍时看到这一句,对平台缺失的组件用Java绘制,这种绘制指的其实是用平台已有的swt组件进行组合获得复合控件,我看过eclipse Nebular项目,主要的自定义控件思想也是这样的,它一方面基于高效的本地控件来复合,同时也可能引入本地控件的问题。但是就现阶段来说,sun对swing的支持还未全面铺开到最关系用户切身体验的范围,举我上次评论说过的JFileChooser,速度和awt是秒和毫秒的差距,当然,这是可以通过编程手段来忽悠用户的,比如开个线程,在打开的第一时间在后台创建备用,就比如jdk demo中的swingset2的方式,但是,这比较让人难以接受,我只为了提供一个让用户选择路径的控件,用完就扔掉的东西,却不得不忍受全绘制界面带来的时间延迟,真的很不值得。
写到这里,只感觉脑袋空空,好像成不了文章了,只是还是想和大家分享,希望有人能讨论,希望想法没有浪费。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-03 23:07 sun_java_studio@yahoo.com.cn(电玩)

@eddie
初学JavaGUI,最好买一本专门介绍swing的书,O'REILLY系列的swing第二版就不错,封面是猴子的那本。如果你想深入了解桌面开发,不要一上来就学SWT,除非工作需要,如果熟悉swing的话翻回来看SWT是毫不费力的。切记的一点是,初学Java GUI不要用任何可视化工具,道理就像没学会走路就想飞一样。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 00:12 sun_java_studio@yahoo.com.cn(电玩)

@Matthew Chen
“楼主提到Java已经可以在桌面应用领域挑战C/C++,VB,Delphi等等”,只是我的希望,我觉得可行是第一,除C++,VB、Delphi的开发者群会逐渐减少,而C++程序员不会把重点放在纯粹的桌面开发,他们通常会借助VC++或C#那种拖拽工具来实现,基于此就会导致第二个问题。第二,Java的跨平台,这是得天独厚的优势。
至于Java性能的问题,我刚派到BEA工作时针对终端为什么采用Java语言问过技术高层,他们的解释是:可以定一个性能指标,假设这个指标是1G CPU、256M内存,小于这个性能值的计算机运行C++时的性能会高于运行Java时的性能,大于这个值的话两者的性能差距就很小了,甚至可以忽略。而且对于初级C++程序员很难写出高效的程序,Java语言本身也利于写出健壮的代码,而C++要为诸如如何避免程序崩溃付出很多,总之swing能与VB等语言挑战,很大程度得意于Java本身。

至于SWT,我仅列举2点最致命的弱点就足矣另SWT在Swing之下了。第一,SWT组件不是Java Bean,从构造函数可以看出必须要指定一个父组件,而这个限制对于实现模块间的松偶合是很不利的。第二,SWT不支持皮肤。
SWT中的Draw2D我了解的不多,但是见IBM官方说性能还不是很好,究其原因可能也是采用非本地调用组件,直接绘制造成的吧,和swing差不多了,但是这样一来SWT在打造外观来说可能会是个不小的进步。 至于IBM会不会将SWT提高规模,我看关键是有外界刺激,如果Swing变得很强大,那么IBM应该不会坐以待毙吧。你说的JFileChooser确实是swing的一大缺点,看Sun怎么看了,没准JDK1.7会有所改观呢:)。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 00:15 Lf0x

一向对 Swing GUI 很感兴趣, 希望楼主多多分享一下开发经验,^_^...  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 00:22 sun_java_studio@yahoo.com.cn(电玩)

@Lf0x
由于工作以来,GUI开发大多都是基于SWT,所以前几篇文章多是SWT为主。后面的贴逐渐会转到Swing。但是九宫图属于设计范畴,与如何实现没太大联系,其实网页设计中的JavaScript里也经常用到类似的技术。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 11:46 zhrb

感觉挺不错的
不过swt也可以跨平台吗?
印象中好像只有swing可以跨平台  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 11:49 sun_java_studio@yahoo.com.cn(电玩)

@欢乐猪
对于大多数标准外观应用,用Swing确实有点小题大做。SWT的特点就是简单,简单包含使用简单和外观简单两层含义,这也就决定了SWT并不会在短时期内消亡,何况它有Eclipse撑腰。但是即使用SWT,上述Demo,大多数是自定义组件,原因很简单,就是原生组件不好看。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 11:54 sun_java_studio@yahoo.com.cn(电玩)

@zhrb
SWT能跨平台,但是我不敢保证效果很好,据说SWT在Linux上bug很多。SWT要实现跨平台,可能要考虑更多东西,必须OLE可能就不兼容。能否支持某一平台看一看能否在那平台上运行Eclipse就行了。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 11:58 BeanSoft

SWT 是快是慢就不说了. 可是 Eclipse 自打2.1.3之后占用内存直线上升, 各位高人有没有什么内幕告诉啊? 做项目的时候 Eclipse 2.1.3 的内存很少超过100MB, 但是 Eclipse 3.0, 3.1, 3.2, 3.3, 天啊, 内存占用直线上升. 至少说明一个问题: Eclipse 追求界面漂亮导致的就是程序的变慢和消耗资源.  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 12:09 sun_java_studio@yahoo.com.cn(电玩)

@欢乐猪
“如果是重载paint(Graphics),从零开始自己画控件和处理事件,那么SWT和Swing是没有区别的”。如果是真的,当初的项目就不会那么费事了,SWT的addPaintListener是无法将组件绘制成半透明效果的。而swing通过重写paintComponent并去掉super.paintComponent。然后利用Graphics2D可轻松实现。
总之,SWT实现专业外观不合适,Swing是用来打造专业外观的组件库,我们开发的产品是IM即时通讯类终端,没有专业外观行么。Eclipse RCP看起来像Eclipse,如果客户接受那套外观,Eclipse RCP无疑是最适合的。
再有SWT不是Java Bean,这个是很致命的。项目中被搞得很无奈,因此后来项目组决定放弃Eclipse RCP重新写一套Framework。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 12:11 sun_java_studio@yahoo.com.cn(电玩)

@BeanSoft
不仅Eclipse,netBeans、JBuilder哪个不是啊。Eclipse的慢不应该是界面导致。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-04 12:18 sun_java_studio@yahoo.com.cn(电玩)

给各位推荐一个博客,http://blog.sina.com.cn/swingjava。作者是Sun工程研究院的员工,对swing开发造诣非浅,他的观点是很有说服力的,有关帖子发表在07年3月,希望不要在SWT、Swing之间再有什么争执了。

我的观点是SWT适合大多数客户的需求,Swing更适合打造专业外观,高手更倾向于swing。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-05 08:53 zht

都是高手。。。
  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-05 13:35 sun_java_studio@yahoo.com.cn(电玩)

@欢乐猪
那个Framework是中间件,因为对RCP程序强制实现SWT很不欣赏,由于SWT强制父组件的构造方法不容易使UI与业务分离,原因就是这样。
使用Eclipse RCP创建的应用外观像Eclipse,JFace倡导Action生成ToolBar Button和MenuItem,这样外观是改不了的,如果硬要这样也有变态的改法。netBeans RCP亦是如此。

我最近除了写帖还学习Equinox,打算以这个作为Framework,界面完全自己控制。

听说话语气您是不是IBM的人呀,对SWT那么有自信?  回复  更多评论   

# re: 打造专业外观-九宫图 2007-11-05 19:04 欢乐猪

@sun_java_studio@yahoo.com.cn(电玩)

>>>由于SWT强制父组件的构造方法不容易使UI与业务分离。
------------------------------------------------------------
相对来讲,你是对的。只要有约束,就会增加耦合度。 但是, 这不是
致命的,JFace里Viewer不就是很好的分离了业务吗? 还有Eclipse
中到处都是Adapter对分离业务也是一种灵活,有效的方式。
只不过,这两都不是用继承的方式,而是采用Composition的方式。
有的人可能不习惯。但是Composition是比继承更安全的一种复用。

你的DemoShell继承了Shell。一般Eclipse中的做法会包含一个Shell,
就像TreeViewer之于Tree一样。当然一个明显的缺点是,DemoShell
就不能替代Shell。所以Eclipse很强调面向interface。这要讲起来就长,
就不说了。

>>>界面完全自己控制
其实你不用从Equinox开始, Equinox是一个Runtime,实现了Plugin的
机制。完全可以用RCP, 你的Application里不要那些Advisor,自己启动
SWT的事件循环。这样,你得到的就是一个Native的Shell,如果你连这个
Shell都不满意,就用Shell(NO_TRIM), 定义Region,相应事件。你想要
什么样的效果, 就可以做到什么样的。只要你不怕麻烦。我觉得,只要你画
的出来(比如用Photoshop), 就能实现的了。

Swing也好,SWT也好,界面编程,我更加看好像.net3.0的MXML和Flex的
那个什么XML,更加declarative. 已经有人基于SWT做了这方面的工作。

我不是IBM的,工作中还是用Swing的多。

出于对Eclipse的兴趣和欣赏,才去研究SWT,以及和Eclipse相关的东西。
也就是从今年3月份开始的,之前只是用Eclipse开发而已。我不光对SWT有
信心,对Swing也很有信心。主要是对Java有信心。和.net不同,Java
世界里往往有多种选择,相互刺激,相互学习,共同进步。当然对什么都
正不明白的人来说,太多选择也是坏事,没得选就不会错了嘛。
  回复  更多评论   

# re: 打造专业外观-九宫图 2007-12-03 09:24 zhou zhi meng

楼主,您好,看了您用Java开发的界面截图,正是太棒了,您能不能发份源代码给俺,感激不尽!
俺的邮箱:zzmccnu@163.com  回复  更多评论   

# re: 打造专业外观-九宫图 2007-12-04 10:14 sun_java_studio@yahoo.com.cn(电玩)

@zhou zhi meng
抱歉,以上若干IM软件UI都是有版权的,源码不能公开,包括程序用到的图片。我能做到的就是将截图展示出来,但是前面的一些有关自定义组件的文章,包括本文已经将大部分实现介绍了,只不过删减了部分代码健壮性细节。
后续还会有相关文章。  回复  更多评论   

# re: 打造专业外观-九宫图 2007-12-31 10:36 wǒ愛伱--咾婆

支持...楼主啊...好东东..看得我心里个激动啊!  回复  更多评论   

# re: 打造专业外观-九宫图 2008-01-18 16:14 QQ:244943080

楼主 .. 我找啦好久 终于找到啦  回复  更多评论   

# re: 打造专业外观-九宫图 2008-08-06 19:45 Ice Mark

Java在界面设计方面一直抬不起头,早就想为java出口气了.  回复  更多评论   

# re: 打造专业外观-九宫图 2008-08-07 09:25 sun_java_studio@yahoo.com.cn(电玩)

@Ice Mark
前些日子和Willim chen见了次面,谈到了Swing何时翻身,他作了这么一个比喻:著名画家凡高,在世的时候作品一文不值,等他过世很长时间年人们才注意到。原因就是凡高的画风和当时时代的现实主义很不融合。凡高的画很超前,用现在的话说就是前卫,而当时美术界被达芬奇等现实派所垄断,所以凡高在当时就是怀才不遇、不合时宜,结果下场就是疯掉、自杀。
这和Swing很类似,Sun公司于1997年Java One大会上公布了Swing和Java2D图形组件,在当时来说是极其超前的。首先当时的用户电脑性能、计算能力、JVM性能都不高,Swing这种画出来的非本地组件会执行更多的指令来达到渲染、展现,这是性能方面;其二,Swing默认L&F是很丑陋,尤其在早期的JVM中更是如此,如果把Swing做得漂亮一点是需要成本的,而且还会另当时本来就不快的Swing更慢,当时Windows 95、98用户习惯了Windows风格,用VB简单的拖拽就可方便的编写出比较美观的Windows界面,而VB的组件库比Swing标准组件丰富得多,即使Swing可以跨平台,但是和Windows的垄断比起来还是差远了。
不是Swing不好,只是时机未到。如今互联网的速度、计算机的性能早已不是当时的情况,所以RIA时代来了,Linux、OpenSolaris用户群多了,浏览器比再是IE一家独占了,VB时代已去。Sun从未放弃过桌面,JavaFX SDK Preview发布了,Swing该翻身了。  回复  更多评论   

# re: 打造专业外观-九宫图 2008-09-01 21:20 Hunking 土著人

向楼主学了两招,花了两天时间实现了这两个布局管理器

y = a*x + b 和 九宫布局

不错,算是真正的理解了布局管理器
谢谢楼主  回复  更多评论   

# re: 打造专业外观-九宫图 2008-09-06 21:38 flame

作为一个学生,我平时喜欢上网查找一些相关的编程技术,但是像作者这样懂技术,有成果,又肯不惜赐教的人真的不多,希望能学到作者的更多的编程经验.  回复  更多评论   

# re: 打造专业外观-九宫图 2008-10-28 12:06 sjzs1190@qq.com

强人
很想知道,九宫格的原理是你想出来的还是参考别人的。有没有类似的书籍看看呢。
  回复  更多评论   

# re: 打造专业外观-九宫图 2008-10-29 22:59 sun_java_studio@yahoo.com.cn(电玩)

@sjzs1190@qq.com
利用九宫图实现专业外观早就有了,在Flex中已经是官方解决方案了,在VB时代就有人用,就是很多人不知道而已。  回复  更多评论   

# re: 打造专业外观-九宫图 2008-11-07 11:43 游客

楼主能不能用swing实现一个优美的界面,最好包括的东西全面写。  回复  更多评论   

# re: 打造专业外观-九宫图 2008-11-09 14:22 sun_java_studio@yahoo.com.cn(电玩)

@游客
《FilthyRichClients》看完一遍了,特别是动画和效果的部分,感觉借助TimingFramework和AnimatedTransitions作出漂亮非常之简单,也有把书中提到的假想图实现一遍的想法,等有时间吧。  回复  更多评论   

# re: 打造专业外观-九宫图 2008-11-20 09:02 952679745

swing和swt在性能上的感觉就好象netbeans6.0和eclipse一样,只不过现在的3。4版本确实差很多。不过整体上速度要比netbeans快很多

啥时候翻身,不知道啊。现在在越多的开发中发现一个java程序,jvm,数据库下来都一百多M,哎,太糟糕了,打算回到原始部落吧  回复  更多评论   

# re: 打造专业外观-九宫图 2009-01-07 00:31 shukae

九宮格方法很簡單,只是UI入門小技巧


>> @zhrb
>> SWT能跨平台,但是我不敢保证效果很好,据说SWT在Linux上bug很多。
Swing和SWT在Linux都跑得很好好嗎!不要在人云亦云了!

>>@欢乐猪
>>SWT实现专业外观不合适,Swing是用来打造专业外观的组件库,我们开发的产品是IM即时通讯类终端,没有专业外观行么
用SWT就寫不出專業外觀,那是你的問題
因為我在公司就用Swing和SWT寫出一模一樣的AP
UI遠遠比你的AP複雜,對於畫面親切更加要求
  回复  更多评论   

# re: 打造专业外观-九宫图 2009-01-07 17:22 风过

但是我一直有个问题。。。
当MS提出了毛玻璃效果之后,java如何实现,我一直困扰于此
如果我想写一套真正的透明组件,如何实现?  回复  更多评论   

# re: 打造专业外观-九宫图 2009-01-08 11:30 sun_java_studio@yahoo.com.cn(电玩)

@风过
《Java动画、图形和极富客户端效果开发》该有的都有了。  回复  更多评论   

# re: 打造专业外观-九宫图 2009-06-29 13:54 希望的石头

Java的速度仍然不尽人意。大侠能否指点一下,如何将Java编译成本地代码??  回复  更多评论   

# re: 打造专业外观-九宫图 2009-07-23 12:25 发到

写的很不错 能否把这几幅图的demo程序给我发一下吗?谢谢 邮箱shijiyu00@sohu.com  回复  更多评论   

# re: 打造专业外观-九宫图 2009-08-31 13:23 freeman

你的九宫格有些牵强,可以有更优雅,更符合习惯的方法解决布局!  回复  更多评论   

# re: 打造专业外观-九宫图 2009-08-31 13:31 sun_java_studio@yahoo.com.cn(电玩)

@freeman
九宫格算是一种解决办法,不局限于语言。
像FlexBuilder就支持这种布局,说明Flex早就开始采纳了。  回复  更多评论   

# re: 打造专业外观-九宫图[未登录] 2010-03-24 16:43 ethan

请问你是怎么对Swing中标题栏操作的,我好像去不掉标题栏啊  回复  更多评论   

# re: 打造专业外观-九宫图 2010-03-26 18:26 电玩

@ethan
标题是画上去的,或者干脆就是一副图片。  回复  更多评论   

# re: 打造专业外观-九宫图 2010-06-13 16:40 路过

楼主的想法和Sun官方的想法是一致的
Sun在这方面已经做得很好了,大家有兴趣可以看一下
高级Synth
http://www.ibm.com/developerworks/cn/java/j-synth/  回复  更多评论   

# re: 打造专业外观-九宫图 2010-06-13 18:02 sun_java_studio@yahoo.com.cn(电玩)

@freeman
谢谢评论,那篇文章早就看过了,现在的趋势是整个桌面应用正逐渐被Web和Mobile替代。美丽的外观不是Swing做不到也不是Java做不到,而是大部分用户已不关注PC桌面了。Java客户端将在Android和Google下延续  回复  更多评论   

# re: 打造专业外观-九宫图 2012-07-31 23:31 chenzhihui

你好,请问下博主有没有聊天工具的ui源码呢?
现因为要做一个开源的webqq客户端,要使用聊天ui,对于美工方面资源有点少,是否可以提供些呢?
我的邮箱: 6208317@qq.com  回复  更多评论   

# re: 打造专业外观-九宫图 2012-08-22 11:24 sun_java_studio@yahoo.com.cn(电玩)

@chenzhihui
06年的项目,源码我没有留。
iQQ开源是你发起的吗?  回复  更多评论   

# re: 打造专业外观-九宫图 2012-11-17 21:32 chenyu

能请教下 你图中的table比swt table漂亮多了,是怎么做的  回复  更多评论   

# re: 打造专业外观-九宫图 2012-11-19 14:44 sun_java_studio@yahoo.com.cn(电玩)

@chenyu
上述那个table吗?貌似是没渲染,就普通的SWT table。可能我当时对表头做处理了吧。06年的代码,忘了:<  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
TWaver中文社区