Java程序设计之swt教程 下载本文

内容发布更新时间 : 2024/11/15 2:17:04星期一 下面是文章的全部内容请认真阅读。

setEnabled(Boolean enabled):设置组件是否可用。true:可用(默认值),false:不可用。 setFont(Font font):设置文字的字体。 setForeground(Color color):设置前景色。 setBackgrount(Color color):设置背景色。 setImage(Image image):设置显示的图片。 setSelection(Boolean selected):设置是否选中(仅对复选框或单选框有效)。true:选中,false:未选中(默认值)。

setToolTipText(String string):设置鼠标停留在组件上时出现的提示信息。 以上方法在其他组件中也可使用。 例4.2 按钮示例。

按照例4.1的操作步骤建立项目、设置构建路径和引入原生库。类Sample4_2.java源代码如下:

package edu.ch4;

import org.eclipse.swt.*;

import org.eclipse.swt.widgets.*; public class Sample4_2 {

public static void main(String[] args) {

Display display=new Display();//创建一个display对象。 Shell shell=new Shell(display);//shell是程序的主窗体 //shell.setLayout(null); //设置shell的布局方式 shell.setText(\按钮示例\); //设置主窗体的标题

Button bt1=new Button(shell,SWT.NULL); //创建默认按钮 bt1.setText(\); //设置按钮上的文字

bt1.setBounds(10,10,75,30); //设置按钮显示位置及宽度、高度 bt2.setText(\); bt2.setBounds(90,10,75,30);

Button check1=new Button(shell,SWT.CHECK);//创建复选按钮 check1.setText(\); check1.setBounds(10,50,75,30);

Button check2=new Button(shell,SWT.CHECK|SWT.BORDER);//创建深陷型复选按钮 check2.setText(\); check2.setBounds(90,50,75,30);

Button radio1=new Button(shell,SWT.RADIO);//创建单选按钮 radio1.setText(\); radio1.setBounds(10,90,75,30);

Button radio2=new Button(shell,SWT.RADIO|SWT.BORDER);//创建深陷型单选按钮 radio2.setText(\); radio2.setBounds(90,90,75,30);

Button arrowLeft=new Button(shell,SWT.ARROW|SWT.LEFT);//创建箭头按钮(向左) arrowLeft.setBounds(10,130,75,20);

Button arrowRight=new Button(shell,SWT.ARROW|SWT.RIGHT|SWT.BORDER); arrowRight.setBounds(90,130,75,20); shell.pack(); //自动调整主窗体的大小

Button bt2=new Button(shell,SWT.PUSH|SWT.BORDER); //创建深陷型按钮

}

}

shell.open(); //打开主窗体

while(!shell.isDisposed()){ //如果主窗体没有关闭 }

display.dispose(); //销毁display

if(!display.readAndDispatch()){ //如果display不忙 display.sleep(); //休眠 }

运行结果如图4.4所示。

图4.4 按钮 图4.5 标签

4.2.2 标签组件

标签(Label类)组件是SWT中最简单的组件。Label类的构造方法和Button类相似,参数的含义与相同,格式如下:

Label(Composite parent,int style) Label类的常用式样有以下几种: Label类常用的式样如下: SWT.CENTER:文字居中。 SWT.RIGHT:文字靠右。 SWT.LEFT:文字靠左。 SWT.NONE:默认式样。 SWT.WRAP:自动换行。 SWT.BORDER:深陷型。

SWT.SEPARATOR:分栏符,默认为竖线分栏。 SWT.HORIZONTAL:横线分栏符。 例4.3 标签示例。

package edu.ch4;

import org.eclipse.swt.*;

import org.eclipse.swt.widgets.*; import org.eclipse.swt.graphics.Font; public class Sample4_3 {

public static void main(String[] args) {

Display display=new Display();//创建一个display对象。 Shell shell=new Shell(display);//shell是程序的主窗体 //shell.setLayout(null); //设置shell的布局方式 shell.setText(\标签示例\); //设置主窗体的标题

}

}

Label lb1=new Label(shell,SWT.BORDER|SWT.RIGHT);//深陷型、文字右对齐 lb1.setBounds(10,10,70,30); lb1.setText(\标签1\);

lb1.setFont(new Font(display,\黑体\,14,SWT.BOLD));//设置文字的字体字号 lb1.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE)); Label lb2=new Label(shell,SWT.CENTER);//文字居中的标签 lb2.setBounds(90,10,70,30); lb2.setText(\标签2\);

lb2.setFont(new Font(display,\宋体\,14,SWT.NORMAL));//设置文字的字体字号 Label lb3=new Label(shell,SWT.SEPARATOR|SWT.BORDER);//竖直分栏符 lb3.setBounds(10,50,70,30);

Label lb4=new Label(shell,SWT.SEPARATOR|SWT.HORIZONTAL|SWT.BORDER); //水平分栏符

lb4.setBounds(90,50,70,30);

shell.pack(); //自动调整主窗体的大小 shell.open(); //打开主窗体

while(!shell.isDisposed()){ //如果主窗体没有关闭则一直循环 }

display.dispose(); //销毁display

if(!display.readAndDispatch()){ //如果display不忙 display.sleep(); //休眠 }

程序运行结果如图4.5所示。

4.2.3 文本框组件

文本框(Text类)的式样如下: SWT.NONE:默认式样。 SWT.CENTER:文字居中。 SWT.LEFT:文字靠左。 SWT.RIGHT:文字靠右。

SWT.MULTI:可以输入多行,须回车换行。

SWT.WRAP:可以输入多行,到行尾后自动换行。 SWT.PASSWORD:密码型,输入字符显示成“*”。 SWT.BORDER:深陷型。

SWT.V_SCROLL:带垂直滚动条。 SWT.H_SCROLL:带水平滚动条。 例4.4 各种文本框示例。

package edu.ch4;

import org.eclipse.swt.*;

import org.eclipse.swt.widgets.*; public class Sample4_4 {

}

public static void main(String[] args) { }

Display display=new Display();//创建一个display对象。 Shell shell=new Shell(display);//shell是程序的主窗体 shell.setText(\文本框示例\);

Text text1=new Text(shell,SWT.NONE|SWT.BORDER);//带边框 text1.setBounds(10,10,70,30);

Text text2=new Text(shell,SWT.PASSWORD); text2.setBounds(90,10,70,30);

Text text3=new Text(shell,SWT.MULTI|SWT.V_SCROLL|SWT.H_SCROLL); text3.setBounds(10,50,70,70);

Text text4=new Text(shell,SWT.WRAP|SWT.V_SCROLL); text4.setBounds(90,50,70,70); shell.pack(); shell.open();

while(!shell.isDisposed()){ //如果主窗体没有关闭则一直循环 }

display.dispose(); //销毁display

if(!display.readAndDispatch()){ //如果display不忙 display.sleep(); //休眠 }

运行结果如图4.6所示。

图4.6 文本框 图4.7 下拉框

4.2.4 下拉框组件

1.下拉框(Combo类)的式样 SWT.NONE:默认式样。 SWT.READ_ONLY:只读。

SWT.SIMPLE:无须单击下拉框,列表会一直显示。 2.下拉框(Combo类)的常用方法

add(String string):在Combo中增加一项。

add(String string,int index):在Combo的第index项后插入一项。 deselectAll():使Combo组件中的当前选择项置空。 removeAll():将Combo中的所有选项清空。

setItems(String[] items):将数组中的各项依次加入到Combo中。 select(int index):将Combo的第index+1项设置为当前选择项。