浏览 5782 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-13
GridBagLayout、BoxLayout以及null(空布局)等等。 做一些简单的布局我们习惯于BorderLayout、FlowLayout,但是对于复杂的布局还有其缺陷 性。其中GridBagLayout是一个非常灵活的布局管理器,但是也是最复杂;同时也由于其复杂性 我们只是对其叹而观之,真正用到的时候就不考虑用它了。空布局是使组件固定在版面上,但是 窗口变化是不会随之而相应的变化,同时当两个组件的相互覆盖时,可能会隐藏其中一个组件。 BoxLayout功能上同GridBagLayout一样强大,而且更加易用。BoxLayout 将几个组件以水平或垂 直的方式组合在一起,其中各个组件的大小随窗口的大小变化而变化。 BoxLayout的两种排列: X_AXIS 将以水平方式排列。 Y_AXIS 将以垂直方式排列。 通常BorderLayout作最外面容器的布局,然后内层用BoxLayout。组合其他的布局可以达到 GridBagLayout的效果,而且不会很简单。Box类的很多静方法帮组产生各种布局。 简单的代码片段: Box b4 = Box.createHorizontalBox(); b4.add(Box.createHorizontalStrut(25)); write_findPanel.setBorder(BorderFactory.createTitledBorder("精确条件")); b4.add(write_findPanel); write_findPanel.setOpaque(false); b4.add(Box.createHorizontalStrut(25)); b4.add(Box.createHorizontalGlue()); findPanel.add(b4); write_findPanel.setLayout(new BoxLayout(write_findPanel,BoxLayout.Y_AXIS)); Box box41 = Box.createHorizontalBox(); Box box42 = Box.createHorizontalBox(); box41.add(Box.createHorizontalStrut(25)); box41.add(numberLabel); box41.add(Box.createHorizontalStrut(15)); box41.add(numberField); box41.add(Box.createHorizontalStrut(25)); box42.add(Box.createHorizontalStrut(25)); box42.add(bynameLabel); box42.add(Box.createHorizontalStrut(15)); box42.add(bynameField); box42.add(Box.createHorizontalStrut(25)); write_findPanel.add(Box.createVerticalStrut(25)); write_findPanel.add(box41); write_findPanel.add(Box.createVerticalStrut(5)); write_findPanel.add(box42); write_findPanel.add(Box.createVerticalStrut(45)); write_findPanel.add(Box.createVerticalGlue()); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |