替代 SWT GridData 更简单有效的方法

        随便看看JFace 的package ,发现了一个名字很有意思的类GridDataFactory,可以用来代替SWT中GridData的使用,而且特别方便。以下直接copy了源代码前面的说明,使用很简单,看一下就明白了。求知欲望更强烈的可以看一下它的源代码。

 

*   //  Example 1: Typical grid data for a non-wrapping label
  *  
 
*       //  GridDataFactory version
  *      GridDataFactory.fillDefaults().applyTo(myLabel);
 
*  
 
*       //  Equivalent SWT version
  *      GridData labelData  =   new  GridData(GridData.HORIZONTAL_ALIGN_FILL  |  GridData.VERTICAL_ALIGN_FILL);
 
*      myLabel.setLayoutData(labelData);
 
*  
 
*   ////////////////////////////////////////////////////////// /
  *   //  Example 2: Typical grid data for a wrapping label
  *  
 
*       //  GridDataFactory version
  *      GridDataFactory.fillDefaults()
 
*           .align(SWT.FILL, SWT.CENTER)
 
*             .hint( 150 , SWT.DEFAULT)
 
*             .grab( true false )
 
*           .applyTo(wrappingLabel);
 
*       
 
*       //  Equivalent SWT version
  *      GridData wrappingLabelData  =   new  GridData(GridData.FILL_HORIZONTAL  |  GridData.VERTICAL_ALIGN_CENTER);
 
*      wrappingLabelData.minimumWidth  =   1 ;
 
*      wrappingLabelData.widthHint  =   150 ;
 
*      wrappingLabel.setLayoutData(wrappingLabelData);
 
*  
 
*   //////////////////////////////////////////////////////////////
  *   //  Example 3: Typical grid data for a scrollable control (a list box, tree, table, etc.)
  *  
 
*       //  GridDataFactory version
  *      GridDataFactory.fillDefaults().grab( true true ).hint( 150 150 ).applyTo(listBox);
 
*  
 
*       //  Equivalent SWT version
  *      GridData listBoxData  =   new  GridData(GridData.FILL_BOTH);
 
*      listBoxData.widthHint  =   150 ;
 
*      listBoxData.heightHint  =   150 ;
 
*      listBoxData.minimumWidth  =   1 ;
 
*      listBoxData.minimumHeight  =   1 ;
 
*      listBox.setLayoutData(listBoxData);
 
*  
 
*   //////////////////////////////////////////////////////////// /
  *   //  Example 4: Typical grid data for a button
  *
 
*       //  GridDataFactory version
  *      Point preferredSize  =  button.computeSize(SWT.DEFAULT, SWT.DEFAULT,  false );
 
*      Point hint  =  Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize);
 
*      GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(hint).applyTo(button);
 
*
 
*       //  Equivalent SWT version
  *      Point preferredSize  =  button.computeSize(SWT.DEFAULT, SWT.DEFAULT,  false );
 
*      Point hint  =  Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize);
 
*      GridData buttonData  =   new  GridData(GridData.HORIZONTAL_ALIGN_FILL  |  GridData.VERTICAL_ALIGN_CENTER);
 
*      buttonData.widthHint  =  hint.x;
 
*      buttonData.heightHint  =  hint.y;
 
*      button.setLayoutData(buttonData); 

 

       类似的还有一个GridLayoutFactory。

你可能感兴趣的:(替代 SWT GridData 更简单有效的方法)