RCP布局
来源:互联网 发布:mac版芒果tv缓存在哪 编辑:程序博客网 时间:2024/06/12 13:56
我原以为Rcp设计圆角很麻烦,但是后来多方查找资料才发现,其实就像写web页面的样式一样,也很简单
下面我给大家展示下我的代码:这是在viewpart的createPartControl方法里面写的:
我先让大家大致了解一下,RCP的Composite类,其实就是相当于html中的div或table控件,也可以嵌套的。
为了不让大家误解我对我的一部分代码进行说明:IUISizeConstants.UI_HEIGHT和IUISizeConstants.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的布局和美化,做不断的分享,希望大家多多指教。
- RCP布局
- rcp 视图布局
- rcp 视图 布局
- [RCP]布局之GridLayout
- RCP 透视图页面布局
- RCP无法修改程序初始布局
- Eclipse RCP界面的布局的理解
- RCP-布局管理器之网格式
- RCP
- rcp
- RCP
- RCP
- RCP
- RCP
- rcp
- rcp
- RCP
- rcp classpath
- Linux 进程自动监控bash shell脚本 监控VPS服务器负载/CPU及内存占用 自动重启
- 数理逻辑:证明论初步(12)完全归纳公理独立性的加强定理
- 多能源互补的分布式供能系统专题四:正逆耦合循环
- Use Case Diagram(用例图)——UML
- MD5加密
- RCP布局
- nginx 缓存按目录删除
- 缓冲Buffer,缓存Cache,池Pool
- SVN服务器搭建和使用(一)
- LOB SPACE enq HW – contention 等待事件
- 日语敬语小总结
- WCF over JMS(ActiveMQ) 与 gSoap over JMS(ActiveMQ) 通信总结
- OpenCV学习--cvTermCriteria介绍
- 用orabm测试oracle服务器的TPS值