RCP布局

来源:互联网 发布:mac版芒果tv缓存在哪 编辑:程序博客网 时间:2024/06/12 13:56

我原以为Rcp设计圆角很麻烦,但是后来多方查找资料才发现,其实就像写web页面的样式一样,也很简单

下面我给大家展示下我的代码:这是在viewpart的createPartControl方法里面写的:

我先让大家大致了解一下,RCP的Composite类,其实就是相当于html中的div或table控件,也可以嵌套的。

为了不让大家误解我对我的一部分代码进行说明:IUISizeConstants.UI_HEIGHTIUISizeConstants.UI_WIDTH是我自己定义的高度和宽度的常量。SourceManager是我自己定义的专门获取图片的类。IColorConstants是我自己定义的颜色的常量。给打加分享下,为了更清晰的看到每个属性设置的效果,最好跟每一层的Composite设置背景色。
  
  // 第一层
  final Composite composite1 = new Composite(parent, SWT.NONE);
  // 网格布局对象
  GridLayout gridLayout1 = new GridLayout(5, false);// 第一层网格5列
  GridData gridData1 = new GridData();
  gridData1.horizontalAlignment = GridData.FILL;//水平方向填充,但不会随着窗体的大小的变化而变化
  gridData1.verticalAlignment = GridData.FILL;//垂直方向填充,但不会随着窗体的大小的变化而变化
  gridData1.grabExcessVerticalSpace = true;  //这里是指定可以随着窗体的变化,在垂直方向上自动填充
  // 设置网格中子控件的水平间距
  gridLayout1.horizontalSpacing = 0;
  // 设置网格中子控件的垂直间距
  gridLayout1.verticalSpacing = 0;
  composite1.setLayoutData(gridData1);
  composite1.setLayout(gridLayout1);
  composite1.setBackground(IColorConstants.APPLICATION_DEFAULT_COLOR);
  //上-左 占1行1列
  final Composite composite_leave2_top_left= new Composite(composite1, SWT.NONE);
  GridData gd_leave2_top_left=new GridData();
  gd_leave2_top_left.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_top_left.widthHint=IUISizeConstants.UI_WIDTH;
  composite_leave2_top_left.setLayoutData(gd_leave2_top_left);
//  composite_leave2_top_left.setBackground(IColorConstants.RED);
  composite_leave2_top_left.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_LEFT_TOP));
  //上-中 占1行3列
  final Composite composite_leave2_top_center= new Composite(composite1, SWT.NONE);
  GridData gd_leave2_top_center=new GridData();
  gd_leave2_top_center.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_top_center.horizontalAlignment=GridData.FILL;
  gd_leave2_top_center.horizontalSpan=3;
  composite_leave2_top_center.setBackground(IColorConstants.YELLOW_BORDER);
  composite_leave2_top_center.setLayoutData(gd_leave2_top_center);
  //上-右
  final Composite composite_leave2_top_right= new Composite(composite1, SWT.NONE);
  GridData gd_leave2_top_right=new GridData();
  gd_leave2_top_right.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_top_right.widthHint=IUISizeConstants.UI_WIDTH;
//  composite_leave2_top_right.setBackground(IColorConstants.RED); 
  composite_leave2_top_right.setLayoutData(gd_leave2_top_right);
  composite_leave2_top_right.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_RIGHT_TOP));
  //中-左 占3行1列
  final Composite composite_leave2_middle_left= new Composite(composite1, SWT.NONE);
  
  GridData gd_leave2_middle_left=new GridData();
  gd_leave2_middle_left.widthHint=IUISizeConstants.UI_WIDTH;
  gd_leave2_middle_left.verticalAlignment=GridData.FILL;
  gd_leave2_middle_left.verticalSpan=3;
  gd_leave2_middle_left.horizontalSpan=1;
  composite_leave2_middle_left.setBackground(IColorConstants.YELLOW_BORDER);
  composite_leave2_middle_left.setLayoutData(gd_leave2_middle_left);
  //内-上-左 占1行1列存放内圆角
  final Composite composite_leave2_in_top_left = new Composite(composite1, SWT.NO_FOCUS);
  GridData gd_leave2_in_top_left=new GridData();
  gd_leave2_in_top_left.widthHint=IUISizeConstants.UI_WIDTH;
  gd_leave2_in_top_left.heightHint=IUISizeConstants.UI_HEIGHT;
  composite_leave2_in_top_left.setLayoutData(gd_leave2_in_top_left);  
//  composite_leave2_in_top_left.setBackground(IColorConstants.BLUE);
  composite_leave2_in_top_left.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_IN_LEFT_TOP));
  //内-上-中 占1行1列
  final Composite composite_leave2_in_top_center = new Composite(composite1, SWT.NO_FOCUS);
  
  GridData gd_leave2_in_top_center=new GridData();
  gd_leave2_in_top_center.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_in_top_center.horizontalAlignment=GridData.FILL;
  gd_leave2_in_top_center.grabExcessHorizontalSpace=true;
//  composite_leave2_in_top_center.setBackground(IColorConstants.RED);
  composite_leave2_in_top_center.setLayoutData(gd_leave2_in_top_center);
  //内-上-右 占1行1列存放内圆角
  final Composite composite_leave2_in_top_right = new Composite(composite1, SWT.NO_FOCUS);
  
  GridData gd_leave2_in_top_right=new GridData();
  gd_leave2_in_top_right.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_in_top_right.widthHint=IUISizeConstants.UI_WIDTH;    
  
//  composite_leave2_in_top_right.setBackground(IColorConstants.BLUE);
  composite_leave2_in_top_right.setLayoutData(gd_leave2_in_top_right);
  composite_leave2_in_top_right.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_IN_RIGHT_TOP));
  
  //中-右 占3行1列
  final Composite composite_leave2_middle_right= new Composite(composite1, SWT.NONE);
  
  GridData gd_leave2_middle_right=new GridData();
  gd_leave2_middle_right.widthHint=IUISizeConstants.UI_WIDTH;
  gd_leave2_middle_right.verticalAlignment=GridData.FILL;
  gd_leave2_middle_right.verticalSpan=3;
  gd_leave2_middle_right.horizontalSpan=1;
  composite_leave2_middle_right.setBackground(IColorConstants.YELLOW_BORDER);
  composite_leave2_middle_right.setLayoutData(gd_leave2_middle_right);
  
  //内-中-中 占1行3列 存放按钮
  final Composite composite_leave2_in_middle_center = new Composite(composite1, SWT.NO_FOCUS);
    
  GridData gd_leave2_in_middle_center=new GridData();
  gd_leave2_in_middle_center.verticalAlignment=GridData.FILL;
  gd_leave2_in_middle_center.horizontalAlignment=GridData.FILL;
  gd_leave2_in_middle_center.grabExcessHorizontalSpace=true;
  gd_leave2_in_middle_center.grabExcessVerticalSpace=true;
  gd_leave2_in_middle_center.verticalSpan=1;
  gd_leave2_in_middle_center.horizontalSpan=3;
  GridLayout gl_leave2_in_middle_center=new GridLayout(1,false);
  gl_leave2_in_middle_center.verticalSpacing=0;
  composite_leave2_in_middle_center.setLayoutData(gd_leave2_in_middle_center); 
//  composite_leave2_in_middle_center.setBackground(IColorConstants.YELLOW_BORDER);
  composite_leave2_in_middle_center.setLayout(gl_leave2_in_middle_center);
  //内-下-左 占1行1列 存放圆角
  final Composite composite_leave2_in_bottom_left = new Composite(composite1, SWT.NO_FOCUS);
  
  GridData gd_leave2_in_bottom_left=new GridData();
  gd_leave2_in_bottom_left.widthHint=IUISizeConstants.UI_WIDTH;
  gd_leave2_in_bottom_left.heightHint=IUISizeConstants.UI_HEIGHT;
  
  composite_leave2_in_bottom_left.setLayoutData(gd_leave2_in_bottom_left);
//  composite_leave2_in_bottom_left.setBackground(IColorConstants.BLUE);
  composite_leave2_in_bottom_left.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_IN_LEFT_BOTTOM));
  //内-下-中 占1行1列
  final Composite composite_leave2_in_bottom_center = new Composite(composite1, SWT.NO_FOCUS);
    
  GridData gd_leave2_in_bottom_center=new GridData();
  gd_leave2_in_bottom_center.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_in_bottom_center.grabExcessHorizontalSpace=true;
  gd_leave2_in_bottom_center.horizontalAlignment=GridData.FILL;
  
  composite_leave2_in_bottom_center.setLayoutData(gd_leave2_in_bottom_center);
//  composite_leave2_in_bottom_center.setBackground(IColorConstants.RED);
  
  //内-下-右 占1行1列  存放圆角
  final Composite composite_leave2_in_bottom_right = new Composite(composite1, SWT.NO_FOCUS);
      
  GridData gd_leave2_in_bottom_right=new GridData();
  gd_leave2_in_bottom_right.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_in_bottom_right.widthHint=IUISizeConstants.UI_WIDTH;
    
  composite_leave2_in_bottom_right.setLayoutData(gd_leave2_in_bottom_right);
//  composite_leave2_in_bottom_right.setBackground(IColorConstants.BLUE);
  composite_leave2_in_bottom_right.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_IN_RIGHT_BOTTOM));
  //下-左
  final Composite composite_leave2_bottom_left= new Composite(composite1, SWT.NONE);
  
  GridData gd_leave2_bottom_left=new GridData();
  gd_leave2_bottom_left.widthHint=IUISizeConstants.UI_WIDTH;
  gd_leave2_bottom_left.heightHint=IUISizeConstants.UI_HEIGHT;
  
//  composite_leave2_bottom_left.setBackground(IColorConstants.RED);
  composite_leave2_bottom_left.setLayoutData(gd_leave2_bottom_left);
  composite_leave2_bottom_left.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_LEFT_BOTTOM));
  //下-中 占1行3列
  final Composite composite_leave2_bottom_center= new Composite(composite1, SWT.NONE);
  
  GridData gd_leave2_bottom_center=new GridData();
  gd_leave2_bottom_center.heightHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_bottom_center.horizontalAlignment=GridData.FILL;
  gd_leave2_bottom_center.horizontalSpan=3;
  composite_leave2_bottom_center.setBackground(IColorConstants.YELLOW_BORDER);
  composite_leave2_bottom_center.setLayoutData(gd_leave2_bottom_center);
  //下-右
  final Composite composite_leave2_bottom_right= new Composite(composite1, SWT.NONE);
  
  GridData gd_leave2_bottom_right=new GridData();
  gd_leave2_bottom_right.widthHint=IUISizeConstants.UI_HEIGHT;
  gd_leave2_bottom_right.heightHint=IUISizeConstants.UI_WIDTH;
  
//  composite_leave2_bottom_right.setBackground(IColorConstants.RED);
  composite_leave2_bottom_right.setLayoutData(gd_leave2_bottom_right);
  composite_leave2_bottom_right.setBackgroundImage(SourceManager.getImage(IImageConstants.YELLOW_RIGHT_BOTTOM));
  //开始生成按钮
  Button button1 = ControlFactory.getDefault().createLeftViewButton(composite_leave2_in_middle_center, SWT.NONE);
  button1.setText(IWindowConstants.BUTTON_FILE_UPLOAD_LABEL);

  Button button2 = ControlFactory.getDefault().createLeftViewButton(composite_leave2_in_middle_center, SWT.NONE);
  button2.setText(IWindowConstants.BUTTON_FILE_SEARCH_LABEL);

  Button button3 = ControlFactory.getDefault().createLeftViewButton(composite_leave2_in_middle_center, SWT.NONE);
  button3.setText(IWindowConstants.BUTTON_FILE_DOWNLOAD_LABEL);

  Button button4 = ControlFactory.getDefault().createLeftViewButton(composite_leave2_in_middle_center, SWT.NONE);
  button4.setText(IWindowConstants.BUTTON_FILE_UPLOAD_LABEL);

  Button button5 = ControlFactory.getDefault().createLeftViewButton(composite_leave2_in_middle_center, SWT.NONE);
  button5.setText(IWindowConstants.BUTTON_FILE_SEARCH_LABEL);

  Button button6 = ControlFactory.getDefault().createLeftViewButton(composite_leave2_in_middle_center, SWT.NONE);
  button6.setText(IWindowConstants.BUTTON_FILE_DOWNLOAD_LABEL);

  Button button7 = ControlFactory.getDefault().createLeftViewButton(composite_leave2_in_middle_center, SWT.NONE);
  button7.setText(IWindowConstants.BUTTON_FILE_UPLOAD_LABEL);

 这是效果图:希望对大家有帮助,我会继续对RCP的布局和美化,做不断的分享,希望大家多多指教。

原创粉丝点击