资源描述:
《Eclipse开发经典教程常用SWT组件.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Eclipse开发经典教程:常用SWT组件在介绍组件之前,有必要介绍一下Control类。Control类是一个抽象类,它是所有窗口组件(即在Windows中能获得句柄的部件)的基类。Control类的继承关系Control类是为继承而设计的,所有窗口组件都继承于Control类,如图1所示。图1Control类的继承关系Control的一个实例代表Windows中的一个窗口组件,它中有窗口名柄属性,但是在程序中不能够直接访问。Control类的常用方法Control类提供了窗口组件中的常用方法,所有的窗口组件都可以调用Control类的方
2、法,常用方法如下。1.setBounds(intx,inty,intwidth,intheight)解释:设定窗口组件的位置,参数(x,y)为窗口组件左上角顶点的相对于父窗口坐标,(width,height)为窗口的宽度和高度。示例:button.setBounds(40,50,100,30)。2.setEnabled(booleanenabled)解释:设定窗口是否可用,参数enabled为true表示窗口可用,为false表示窗口禁用。示例:button.setEnabled(false)。3.setVisible(booleanvis
3、ible)解释:设定窗口是否可显示,参数visible为true表示窗口可显示,为false表示窗口不可显示。示例:button.setVisible(false)。4.setToolTipText(Stringstring)解释:设定鼠标指向窗口时的提示信息,参数string为提示信息的内容。示例:button.setToolTipText("verygood")。5.setFont(Fontfont)解释:设定窗口文字的字体,参数font为字体对象。示例:button.setFont(font)。6.setForeground(Colo
4、rcolor)解释:设定窗口的前景色,参数color为颜色对象。示例:button.setForeground(color)。7.setBackground(Colorcolor)解释:设定窗口的背景色,参数color为颜色对象。示例:button.setBackground(color)。8.setCursor(Cursorcursor)解释:设定窗口的光标形状,参数cursor为光标对象。示例:button.setCursor(newCursor(null,SWT.CURSOR_WAIT));9.Control(Compositepar
5、ent,intstyle)解释:窗口组件中的构造函数一般会调用Control类的构造函数,参数parent为当前构建的窗口的父窗口,style为当前构建窗口的样式(默认可以指定为SWT.NONE)。示例:Buttonbutton=newButton(shell,SWT.NONE)。另外,Control类还实现了一些和窗口有关的方法,例如createWidget和createHandle等,这些方法直接和操作系统相关,有兴趣的读者可以继续研究。提示:并不是所有的组件调用Control的方法都有用,有些方法是为某些特殊的组件而存在的。常用组件有
6、些组件在大多数操作系统都存在,SWT直接通过JNI直接封装了这些组件。按钮Button(按钮)是SWT组件常用的一种。在组件中添加一个按钮很简单,只需要指定按钮的父组件和相应的样式即可,例如:“Buttonbutton=newButton(shell,SWT.PUSH)”语句在shell组件中添加了一个普通的按钮。另外,添加一个按钮一般来说会指定按钮的位置(如果未指定布局信息)和按钮的显示标签,如例程1所示。例程1HelloWorldButton.java/***为了节省篇幅,所有的import类已经被注释*读者可以通过ctrl+shift
7、+o快捷键,自动引入所依赖的类*如果有问题可发邮件到ganshm@gmail.com**/publicclassHelloWorldButton{publicHelloWorldButton(){Displaydisplay=newDisplay();Shellshell=newShell(display);//指定父组件和按钮样式Buttonbutton=newButton(shell,SWT.PUSH);//指定按钮的位置button.setBounds(40,50,100,30);//指定按钮的显示标签button.setText("
8、ClickMe");shell.setSize(200,200);shell.open();while(!shell.isDisposed()){if(!display.read