GridBagLayout布局管理器的应用

来源:互联网 发布:文化衫设计软件 编辑:程序博客网 时间:2024/04/30 14:56

GridBagLayout布局管理器比较复杂,参数也比较多,参数是 

newGridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,fill,insert,ipadx,ipady); 

每个参数的含义 

gridx,gridy 

设置组件的位置,gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边。 
gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面。 
建议定义出gridx,gridy的位置以便以后维护程序。gridx=0,gridy=0时放在0行0列。 

gridwidth,gridheight 

用来设置组件所占的单位长度与高度,默认值皆为1。 
你可以使用GridBagConstraints.REMAINDER常量,代表此组件为此行或此列的最后一个组件,而且会占据所有剩余的空间。 

weightx,weighty 

用来设置窗口变大时,各组件跟着变大的比例。 
当数字越大,表示组件能得到更多的空间,默认值皆为0。 

anchor 

当组件空间大于组件本身时,要将组件置于何处。 
有CENTER(默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、WEST、NORTHWEST选择。 

insets 

设置组件之间彼此的间距。 
它有四个参数,分别是上,左,下,右,默认为(0,0,0,0)。 

对象的fill成员控制的,它可取下列值 
GridBagConstraints.NONE 不增长 
GridBagConstraints.HORIZONTAL 只横向增长 GridBagConstraints.VERTICAL 只纵向增长 GridBagConstraints.BOTH   双向增长 
当你创建一个GridBagConstraints对象时,其fill值设置为NONE,因此在单元格增长时,单元格内部组件不会增长

ipadx,ipady 

设置组件间距,默认值为0。 

下面是一个小例子 


Java代码  收藏代码
  1. package com.dr.swt.xuechengxitong;  
  2.   
  3. import java.awt.Dimension;  
  4. import java.awt.GridBagConstraints;  
  5. import java.awt.GridBagLayout;  
  6. import java.awt.Insets;  
  7. import java.awt.Toolkit;  
  8.   
  9. import javax.swing.JButton;  
  10. import javax.swing.JFrame;  
  11. import javax.swing.JScrollPane;  
  12. import javax.swing.JTextArea;  
  13.   
  14. @SuppressWarnings("serial")  
  15. public class Teste3 extends JFrame{  
  16.     private static JTextArea jTextArea;  
  17.     private JButton jButton1;  
  18.     private JButton jButton2;  
  19.     private JButton jButton3;  
  20.       
  21.     public Teste3(){      
  22.         GridBagLayout gridbag = new GridBagLayout();     
  23.         this.setLayout(gridbag);     
  24.         JScrollPane scroll = new JScrollPane(getJtextArea(),      
  25.               JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,    
  26.               JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);     
  27.         gridbag.setConstraints(scroll, new GridBagConstraints(003,   
  28.               21.01.0,GridBagConstraints.CENTER,    
  29.           GridBagConstraints.BOTH, new Insets(100100100100),     
  30.             00));     
  31.         gridbag.setConstraints(getJButton1(), new GridBagConstraints   
  32.               (02111.00.0, GridBagConstraints.SOUTH,    
  33.               GridBagConstraints.HORIZONTAL, new Insets(30200100,     
  34.               100), 00));     
  35.         gridbag.setConstraints(getJButton2(), new GridBagConstraints  
  36.               (12111.00.0,GridBagConstraints.SOUTH,  
  37.                GridBagConstraints.HORIZONTAL, new Insets(30100100,   
  38.                100), 00));     
  39.         gridbag.setConstraints(getJButton3(), new GridBagConstraints  
  40.               (22111.00.0,GridBagConstraints.SOUTH,  
  41.                GridBagConstraints.HORIZONTAL, new Insets(30100100,    
  42.                200), 00));           
  43.         this.add(scroll);     
  44.         this.add(getJButton1());     
  45.         this.add(getJButton2());     
  46.         this.add(getJButton3());     
  47.         Dimension screenSize = Toolkit.getDefaultToolki().  
  48.                                  getScreenSize();     
  49.         int screenWidth = (int) screenSize.getWidth();     
  50.         int screenHight = (int) screenSize.getHeight();     
  51.         this.setSize(screenWidth, screenHight);     
  52.         this.setVisible(true);  
  53.     }  
  54.       
  55.     private JTextArea getJtextArea(){  
  56.         if(jTextArea == null){  
  57.             jTextArea = new JTextArea();   
  58.             jTextArea.setLineWrap(true);  
  59.         }  
  60.         return jTextArea;  
  61.     }  
  62.       
  63.     private JButton getJButton1(){  
  64.         if(jButton1 == null){  
  65.             jButton1 = new JButton("jButton1");  
  66.         }  
  67.         return jButton1;  
  68.     }  
  69.       
  70.     private JButton getJButton2(){  
  71.         if(jButton2 == null){  
  72.             jButton2 = new JButton("jButton2");  
  73.         }  
  74.         return jButton2;  
  75.     }  
  76.       
  77.     private JButton getJButton3(){  
  78.         if(jButton3 == null){  
  79.             jButton3 = new JButton("jButton3");  
  80.         }  
  81.         return jButton3;  
  82.     }  
  83.          
  84.     public static void main(String args[]){  
  85.         new Teste3();  
  86.     }  
  87. }  
  88.     

原创粉丝点击