做 C/S 架构,最难受的就是本地化的问题。使用 Java 编程的一大好处就是跨平台。笔者的习惯,能少配一次环境就少配一次环境,所以图形界面方面把目光投向了 Swing。上篇文章给出了一个完全可用的主题包,官方 demo 来看效果非常优秀,这直接证明了 Swing 的可行性。接下来的一系列文章都将围绕 Swing 进行探索。
本系列文章,不是 Java 教程,即便有时会谈到非常基础或细节的关注点,也不代表本文章无需基础即可通读。关于 Swing 的基础内容,如容器、组件等,网上资料目不暇接,本文不再赘述,Swing 布局虽亦属基础,但是网上的内容过于老旧,无外乎 BorderLayout、FlowLayout、CardLayout、GridLayout、GridBagLayout、BoxLayout 几种。本文将给出目前比较好用的其他布局,以及各种布局的注意事项。
上文的六种布局,基础又经典,故暂称为基础布局,本文接下来介绍到的布局,且称为扩展布局。
总述
- 没有什么界面是 Swing 做不出来的。
除非你比 IntelliJ IDEA 的界面还复杂 - Swing 开发,不可不用布局。一者保证在不同屏幕上显示效果的相似性,二者保证在不同屏幕上界面内容的完整性。
- 不怕嵌套。
- 基础布局,组件大小均由相应布局管理,自适应,不可调整。
而下文提到的若干布局中,如 SpringLayout,可以调整组件大小。 -
setVisible()
尽可能靠后调用。 - BorderLayout 布局中,每个区域最多放置一个容器或者组件,中心区域将尽力压缩其余区域的空间。
- FlowLayout 不好,BoxLayout 好。
未完待续
预计一月中上旬更