- 浏览: 340633 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
hjl0722:
...
Java中的异或 -
lucd:
f(New.<Person, List<Pet&g ...
第15章泛型 -
liujunhao225:
[Error: could not access: List; ...
mvel的使用 -
superscorpio:
public void testImportInContex ...
mvel的使用 -
yuyangtina:
哦,知道了,是继承的方法。谢谢你的分享。
HttpClient3.x发送Soap请求的方法
SWT有2种控制控件位置和大小的方法:绝对定位和托管定位。
绝对定位是相对于父容器的左上角来说的。它的缺点是,窗口变化时,控件的位置和大小是不变的。
托管定位:只要把控件放到容器里面即可,它们的位置和大小由布局管理器来计算和维护。当窗口发生改变是,管理器会重新计算控件的位置和大小。
package com.test.cxm.plugin01.perspective; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class HelloWorldSWT { public static void main(String args[]){ Display display=Display.getDefault(); Shell shell=new Shell(); shell.setBounds(100, 100, 220, 180); shell.setText("mmm"); //填充布局,部件完全填充其父部件 //每个小部件都和其它小部件的大小保存一致 //不能控制部件的间隔、页边距等属性 //默认为SWT.HORIZONTAL默认为横线排列 //shell.setLayout(new FillLayout(SWT.VERTICAL))这个为垂直排列 shell.setLayout(new FillLayout()); for(int i=0;i<8;i++){ Button bn=new Button(shell, SWT.PUSH); bn.setText("B"+i); } 还可以这样: FillLayout fill=new FillLayout(); fill.type=SWT.VIRTUAL; fill.marginHeight=10;//上下边框的距离 fill.marginWidth=30;//左右边框的距离 fill.spacing=10;//控件间的间隔 shell.setLayout(fill); //行布局 //和填充布局类似,将小部件以一行或一列的形式放置,还可以控制许多附加属性 //子部件和父shell间的空白通过marginLeft;marginRigh;marginTop;marginBottom这几个属性设置 //部件间的距离通过spacing设置 RowLayout rlay=new RowLayout(); rlay.marginLeft=5; rlay.marginRight=5; rlay.marginTop=10; rlay.marginBottom=5; rlay.spacing=10; rlay.wrap=false;//是否自动换行,默认为ture rlay.pack=false;//根据控件的内容,调整其大小,默认为true b.setLayoutData(new RowData(100,30));//还可以设置某一个控件的长和宽 shell.setLayout(rlay); for(int i=0;i<8;i++){ Button bn=new Button(shell, SWT.PUSH); bn.setText("B"+i); } //网格布局,是最常用、也是最复杂的布局管理器 //布局中得每个小部件,都可以通过GridData对象控制 GridLayout gl=new GridLayout(); gl.numColumns=2;//定义该布局管理器的列数 shell.setLayout(gl); Label label=new Label(shell,SWT.LEFT); label.setText("label"); GridData gd=new GridData(); gd.horizontalSpan=2;//指定小部件占据的列数,默认为一个单元格 label.setLayoutData(gd); //注意:GridData对象不能重用 Label label2=new Label(shell,SWT.LEFT); label2.setText("name"); Text text=new Text(shell, SWT.SINGLE|SWT.BORDER); GridData gd2=new GridData(); //horizontalAlignment属性指定小部件的水平对齐方式 //有SWT.BEGINNING CENTER END FILL //FILL指的是让该小部件充满该单元格 gd2.horizontalAlignment=GridData.FILL; //定义是否填充单元格,只有这个属性为true时,上面的属性才能生效 gd2.grabExcessHorizontalSpace=true; text.setLayoutData(gd2); // horizontalAlignment是水平对齐方式,相应的还有verticalAligment垂直对齐方式 //horizontalIndent水平缩进,verticalIndent垂直缩进 //horizontalSpan跨列显示,verticalSpan跨行显示 /** * 表单布局 * 它是eclipse中最为强大的布局 * 通过它可以独立控制部件的四周,顶部、底部、左侧、右侧 * * 上下都是参考上边框,左右都是参考左边框 * 正值表示向下和向右偏移的像素点,负的表示向上和向左 * FormData是最重要的对象,它具有四个FormAtttachment对象 * 每一个对应一个边框 * */ shell.setLayout(new FormLayout()); Button bn=new Button(shell, SWT.PUSH); bn.setText("Cancel"); //默认没有参数,可以带参数,表示组件新的宽度和高度 //new FormData(100,50) FormData fm=new FormData(); fm.right=new FormAttachment(100,-5); fm.bottom=new FormAttachment(100,-5); bn.setLayoutData(fm); Button bn2=new Button(shell, SWT.PUSH); bn2.setText("ok"); FormData fm2=new FormData(); //可以有第3个参数,这个参数时可选的 //虽然指定了组件,但是以该组件的那个地方为标准偏移的 //可以取得值为:LEFT,RIGHT,CENTER,TOP,BUTTON,DEFAULT fm2.right=new FormAttachment(bn,-5,SWT.CENTER); fm2.bottom=new FormAttachment(100,-5); bn2.setLayoutData(fm2); Text tx=new Text(shell, SWT.MULTI|SWT.BORDER); FormData tfm=new FormData(); tfm.top=new FormAttachment(0,5); tfm.bottom=new FormAttachment(bn,-5); tfm.left=new FormAttachment(0,5); tfm.right=new FormAttachment(100,-5); tx.setLayoutData(tfm); 堆栈式布局管理器,就像迭起的扑克牌,只会显示最上面的那个控件 final Composite comp1=new Composite(shell, SWT.BORDER); final StackLayout st=new StackLayout(); comp1.setLayout(st); final Button bt1=new Button(comp1,SWT.RADIO); final Button bt2=new Button(comp1,SWT.CHECK); bt1.setText("radio"); bt2.setText("check"); final Composite comp2=new Composite(shell, SWT.BORDER); comp2.setLayout(new RowLayout()); Button bt3=new Button(comp2, SWT.NONE); bt3.setText("Radio"); bt3.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e){ st.topControl=bt1; comp1.layout(); } }); Button bt4=new Button(comp2, SWT.NONE); bt4.setText("Check"); bt4.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e){ st.topControl=bt2; comp1.layout(); } }); shell.open(); while(!shell.isDisposed()){ if(!display.readAndDispatch()){ display.sleep(); } } display.dispose(); } }
发表评论
-
ViewPart的基本操作
2013-01-08 16:00 1086public class AddressView ext ... -
CoolBar
2012-12-16 15:12 1873CoolBar是一个容器,里面可以放置多个工 ... -
ViewForm
2012-12-16 14:53 1497ViewForm是一个容器,它是编辑器的基座,用来 ... -
SWT容器类
2012-12-16 14:34 3276容器类 我们可以通过容器对组件进行统 ... -
多页编辑器
2012-11-12 17:40 1460资源里存储了用户需要的信息,而编辑器是用户创 ... -
控件支持键盘操作
2012-11-12 14:48 869支持键盘删除操作 private void hookK ... -
eclipse表单
2012-11-09 17:45 1603eclispe表单,它的作用就是使swt/jf ... -
视图工具栏
2012-11-08 17:41 889通过编程方式添加视图工具栏和下拉菜单 priva ... -
几个常用的监听器
2012-11-08 17:38 1258为表格或列表查看器添加选择更改监听器 org.ecli ... -
显示上下文菜单
2012-11-08 17:31 1198通过扩展点添加菜单时,必须添加下面的方法,才能显示上下文 ... -
TableView排序
2012-11-08 17:28 895给TableViewer添加排序器的方法: 1.创建一 ... -
操作Action
2012-11-07 17:32 1984IActionDelegate的子类型有IWork ... -
eclipse整体概况
2012-11-07 17:25 1037eclipse通过插件的依赖关系将不同的插件联 ... -
事件监听
2012-07-25 00:03 954一、概述 1.用户在UI界面上的不同操作,会产生不同的 ... -
绘制图形
2012-07-09 22:45 878swt中的绘图功能是通过org.eclipse.s ... -
系统资源类
2012-07-09 00:12 967一、概述 ... -
表格查看器
2012-07-02 00:12 964package com.test.cxm.plugin0 ... -
常用窗口小部件使用实例
2012-06-29 00:24 1381package com.test.cxm.plugin01.p ... -
SWT概述
2012-06-28 23:46 1021import org.eclipse.swt.layout.F ... -
上下文菜单
2011-06-28 16:18 1434popupmenu扩展点是为各种对象上的右键弹出的菜单,添加菜 ...
相关推荐
### Java常用布局管理器详解 在Java图形用户界面(GUI)设计中,布局管理器扮演着至关重要的角色。它们负责组织和排列容器内的组件,确保界面不仅美观,而且响应式,能够在不同屏幕尺寸和设备上正常工作。本文将深入...
韩顺平java图形界面编程之常用组件、布局管理器
1. **BorderLayout**:这是一种非常常用的布局管理器,它将容器划分为五个区域:北、南、东、西和中心。向容器添加组件时,需要指定将其放置在哪个区域。这种布局非常适合于构建具有固定边栏或顶部/底部导航栏的界面...
GridLayout是最常用的布局管理器之一,它将父组件划分为一个二维网格,子组件可以占据一个或多个单元格。GridLayout通过`numColumns`属性确定网格的列数,同时通过`makeColumnsEqualWidth`属性可以控制所有列是否...
### 安卓布局管理器 #### 核心概念 在深入掌握Android布局知识之前,我们首先需要了解Android平台下的控件类基础。整个Android的布局和控件体系构建在几个核心类上,其中最基础的是`View`和`ViewGroup`。 **View...
接下来,我们关注Android的常用布局管理器。布局管理器是控制UI元素在屏幕上的排列方式的关键。主要有以下几种: 1. **线性布局(LinearLayout)**:支持水平或垂直方向上的单行或单列排列,通过`orientation`属性...
流布局管理器(FlowLayout)是一种常用的布局管理器,将组件逐行定位,行内从左到右,一行排满后换行,默认对齐方式为居中对齐,不改变组件的大小,按组件原有尺寸显示组件。 边界布局管理器(BorderLayout)将整个...
RelativeLayout 是 Android 中最常用的布局管理器之一,它可以根据相对位置安排 UI 组件。它有很多的布局参数,如 android:layout_width、android:layout_height、android:layout_marginLeft 等,可以控制组件的...
本讲主要探讨了五种常用的布局管理器:FlowLayout、BorderLayout、CardLayout、GridLayout以及GridBagLayout。 1. FlowLayout:流式布局管理器是Java中最基础的布局管理器,也是Panel和Applet类的默认布局。它按照...
Swing 提供的常用布局管理器包括流布局管理器、边界布局管理器和网格布局管理器。 FlowLayout 流布局管理器是面板的默认布局管理器,它的行为跟文书处理程序的版面配置方式差不多,每个组件都会依照理想的大小呈现...
MFC中默认的布局管理器包括CLayoutView、CFormView和CDialog等,它们通常依赖于窗口的尺寸改变消息来调整控件的位置和大小。然而,这些默认的布局管理方式可能无法满足复杂或精细的界面设计需求,尤其是在需要类似...
在Android应用开发中,布局管理器(Layout Manager)与简单控件是构建用户界面的核心元素。本实验将深入探讨如何有效利用布局管理器来组织UI元素,并熟练掌握常见简单控件的使用。以下是对这些主题的详细阐述: 一...
Java中的`FlowLayout`布局管理器是窗口小部件(如按钮、文本框等)在容器(如JFrame或JPanel)中自动排列的基础工具。它按照从左到右、从上到下的顺序放置组件,一旦一行填满,就会开始新的一行。这种布局常用于创建...
在Android开发中,表格布局管理器(TableLayout)是一种常用且强大的组件,它允许开发者创建类似于HTML中的表格的布局。TableLayout是LinearLayout的扩展,它通过行和列的方式来组织子视图(Views)。本篇学习笔记将...
##### 常用布局管理器: 1. **LinearLayout**:线性布局,可以按垂直或水平顺序排列子元素。 2. **RelativeLayout**:相对布局,通过定义子元素之间的相对位置进行布局。 3. **ConstraintLayout**:约束布局,提供...
对图形用户界面的设计, 实验目的 1. 掌握常用GUI控制组件的使用方法。 2. 掌握事件处理的方法。 3.了解swing控件的概念。
Java AWT中的常用布局管理器包括: - 流式布局(FlowLayout):将组件按加入顺序依次排列,每行从左到右,满行后换行,组件按原始大小显示。 - 边界布局(BorderLayout):将容器分为五个区域(东、南、西、北、中)...
这个主题通常包括了对布局管理器的理解和使用,以及如何通过源码和示例来实现这一功能。 MFC中的控件自动布局主要依赖于两种布局管理器:CLayoutView和CFormView。CLayoutView是MFC库中提供的一种布局视图类,它...
本文主要介绍了三种常用的布局管理策略:使用布局管理器、空布局以及自定义布局管理器。 1. 使用Java提供的布局管理器类 Java提供了一系列内置的布局管理器,帮助开发者方便地布局组件: a. FlowLayout(流布局...