熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

GroupLayout布局管理器實例

2013-11-23 18:56:39  來源: Java核心技術 

  GroupLayout 是一個 LayoutManager它將組件按層次分組以決定它們在 Container 中的位置GroupLayout 主要供生成器使用但也可以手工編碼分組由 Group 類的實例來完成GroupLayout 支持兩種組串行組 (sequential group) 按順序一個接一個地放置其子元素並行組 (parallel group) 能夠以四種方式對齊其子元素

  每個組可以包含任意數量的元素其中元素有 GroupComponent 或間隙 (gap)間隙可被視為一個具有最小大小首選大小和最大大小的不可見組件此外GroupLayout 還支持其值取自 LayoutStyle 的首選間隙

  GroupLayout是一個很重要的是額布局管理器在jdk 才加入配合其它的管理器可以實現很好的界面

  GroupLayout必須要設置它的GroupLayoutsetHorizontalGroup和GroupLayoutsetVerticalGroup

  GroupLayoutsetHorizontalGroup是指按照水平來確定下面例子賬號密碼是一個級別的其它的組件也是一個級別的詳情請看代碼

  GroupLayoutsetVerticalGroup是按照垂直來確定的他們的級別是按照Group去設置組件的優先級別級別越高就顯示越上面

  GroupLayoutsetHorizontalGroup(SequentialGroup(ParallelGroup(component))); 

  大概就是按照這個順序去添加當然不是就這麼簡單設置多個component添加到ParallelGroup然後多個ParallelGroup添加到SequentialGroup裡面

  然後就設置到GroupLayout

  下面的實例設置GroupLayoutsetHorizontalGroup就是把添加到一個 ParallelGroupaddComponent(component)其它添加到另一個ParallelGroup然後把這兩個ParallelGroup按照順序添加到SequentialGroupaddGrou(ParallelGroup);

  

  

  /**  
   * @author 陶偉基 微博  
   * @date //  
   * @place廣州大學華軟軟件學院  
   */ 
   import javaxswingGroupLayout;  
   import javaxswingGroupLayoutAlignment;  
   import javaxswingJButton;  
   import javaxswingJLabel;  
   import javaxswingJPasswordField;  
   import javaxswingJRadioButton;  
   import javaxswingJTextField;  
   public class MyFrame extends javaxswingJFrame {  
       public static void main(String[] args) {  
           MyFrame f = new MyFrame();  
       }  
    
       JLabel label;  
       JLabel label;  
       JLabel label;  
       JTextField tf;  
       JPasswordField psf;  
       JRadioButton rb;  
       JRadioButton rb;  
    
       JButton bt;  
       JButton bt;  
    
       public MyFrame() {  
           thissetVisible(true);  
           thissetSize( );  
           thissetVisible(true);  
           thissetLocation( );  
    
           label = new JLabel(華軟BBS快捷登陸);  
           label = new JLabel(賬號);  
           label = new JLabel(密碼);  
           tf = new JTextField();  
           psf = new JPasswordField();  
           rb = new JRadioButton(記住密碼);  
           rb = new JRadioButton(自動登陸);  
           bt = new JButton(登陸);  
           // 為指定的 Container 創建 GroupLayout  
           GroupLayout layout = new GroupLayout(thisgetContentPane());  
           thisgetContentPane()setLayout(layout);  
           //創建GroupLayout的水平連續組越先加入的ParallelGroup優先級級別越高  
           GroupLayoutSequentialGroup hGroup = layoutcreateSequentialGroup();  
           hGroupaddGap();//添加間隔  
           hGroupaddGroup(layoutcreateParallelGroup()addComponent(label)  
                   addComponent(label));  
           hGroupaddGap();  
           hGroupaddGroup(layoutcreateParallelGroup()addComponent(label)  
                   addComponent(psf)addComponent(rb)addComponent(rb)  
                   addComponent(tf)addComponent(bt));  
           hGroupaddGap();  
           layoutsetHorizontalGroup(hGroup);  
           //創建GroupLayout的垂直連續組越先加入的ParallelGroup優先級級別越高  
           GroupLayoutSequentialGroup vGroup = layoutcreateSequentialGroup();  
           vGroupaddGap();  
           vGroupaddGroup(layoutcreateParallelGroup()addComponent(label));  
           vGroupaddGap();  
           vGroupaddGroup(layoutcreateParallelGroup()addComponent(label)  
                   addComponent(tf));  
           vGroupaddGap();  
           vGroupaddGroup(layoutcreateParallelGroup()addComponent(label)  
                   addComponent(psf));  
           vGroupaddGroup(layoutcreateParallelGroup()addComponent(rb));  
    
           vGroupaddGroup(layoutcreateParallelGroup()addComponent(rb));  
           vGroupaddGroup(layoutcreateParallelGroup(AlignmentTRAILING)  
                   addComponent(bt));  
           vGroupaddGap();  
           //設置垂直組  
           layoutsetVerticalGroup(vGroup);  
       }  
   } 



From:http://tw.wingwit.com/Article/program/Java/hx/201311/26010.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.