一、什么时候用Swing

 

要做Java的应用程序,一般人都会选择Swing,当然Swing最为人所诟病的是Swing的速度太慢了。如果是一个简单的界面的话,尚且可以接受,但一旦用在一些大量的用户界面后,就会发现加载的速度很慢。所以选用Swing来做为解决方案的话,一般出于如下原因:

 

1. 用户对于操作速度要求并不高,但却关心程序是否安全精确。因为Swing基于Java的优秀框架,所以它同样也有Java安全和精确的特性。

 

2. 作者希望Swing被Java所调用,现在主流的一些商业程序都是用Java来开发的,如果使用Swing,因为Swing本质上其实是一些很简单的Java类,所以被Java调用起来,非常的方便。

 

二、Swing的布局

 

对于Swing的新手来说,Swing的布局是Swing的一大难点。与.net不同的是,Java的用户最经常使用的开发工具并不支持可视化的用户界面设计。因此,我们一般都会使用Swing的布局来设计用户设计,当然你可以每个组件都定义一个坐标,但这样的话,我们必须反复的调整才能得到美观的界面。很多刚学习Swing的用户总用对布局望而却步,但其实布局并不难。

 

 我们经常使用的布局一般FlowLayout,BorderLayout,GridLayout和CardLayout。

 

FlowLayout:FlowLayout是一种自适应型的布局,它自动的判断窗口的边界,如果组件的大小超过了边界,则把组件放到前面的组件的下方。使用这个布局,可以我们的布局看起来十分的紧凑。

 

BorderLayout:做过网页编程的人应该都很熟悉FrameSet,他可以把一个网页切成一大块一大块的,而BorderLayout也是同样的道理,BorderLayout就是一把布局的大刀,把组件分别填充到切好的大块里面去。

 

GridLayout:GridLayout顾名思义就是表格布局,它把组件像表格一样分成一小块一小块,你可以决定组件放在表格的第几行第几列。

 

CardLayout:CardLayout是一个魔术师,它施魔法让组件隐身现身,使用它,我们可以方便进行界面切换。

 

Swing布局的详细请参见:http://tntxia.iteye.com/blog/683035

 

三、Window,Frame和JFrame

 

Window是一个纯粹的窗口,没有边框,就只有一个底板,做Window组件,我们可以自己去定义它的边框,这样我们就可以做出一些个性化的窗口出来,因为有一些用户,他们不喜欢千篇一律的窗口,尽管这样做很麻烦。

 

Frame是awt中的窗口,而JFrame是Swing中的窗口类,Swing组件一样可以装在Frame组件中,但是Frame在设计上存在些很大的不足,所以是Java不建议使用的组件了。

 

四、组合

 

Swing程序本质上一些Swing组件对象的组合

 

JFrame是这个组合的平台,因为除JFrame外,其他的组件都是轻量级的,所以其他组件必须要依附在JFrame上才可以显示。依附的方法方法是调用JFrame的add方法,把组件加到JFrame上面。