前言我找了许多资料,发现SWT的很少,但是工作的时候在Eclipse开发窗口化的时候会用到,它相对于Swing来说,外观要更好看一些,性能也好一些,Swing是集成在IDEAJ上的,我通过看SWT face了解一些知识,总结在这里。
一:Display是Display的对象,它用来管理事件的循环,Display对象代表了程序级的SWT各个类和底层系统窗口连接的实现。
代码:代码语言:javascript复制while(!shell.isDisposed()){
if(!display.readAndDispatch())
diaplay.sleep();
}通过readAndDispatch()方法进行读取事件
二:常用APIgetText()获取组件标签文字,如标签未设或分隔符则返回空值getImage()获取文本或图像setText(String string)设置组件文字setImage(Image image)设置图像setAlignment(int alignment)设置文本或图像如何在容器显示,对齐方式:SWT.LEFT SWT.CENTER SWT.RIGHT三:Button 这个我们都熟悉了,他的实例化代码为:
代码语言:javascript复制Button button = new Button(shell,SWT(这里写BUtton的按钮类型))按钮常用API: setSelection(Boolen selected)如果接受者样式为SWT.CHECK,SWT.RADIO,SWT.TOGGLE样式风格,则可以设置他的选择状态
四:Text类文本框用来接收键盘的输入信息。它和按钮一 样都是常用的 SWT 组件,二者常常配合使用
1.定义文本框方法 构造方法:代码语言:javascript复制 public Text(Composite parent,int style)2:构造用法: 代码语言:javascript复制 Text text=new Text(shell,SWT.NONE); text.setBounds(20, 15, 80, 25);3:实例向用户信息文本框输入文本信息,单击“OK”按钮,输入的文本将显示在文本框中。 单击“Cancel”按钮将清除文本内容。文本框不能为空,否则单击“OK”按钮将弹出提示对话框。且对输入的文本长度作 了限制,不能超过 8 个字符。设置了提示信息,当鼠标停留在“文本框”、“按钮”时将出现提示信息。此方法既可以起到帮助功能又可以起到容错功能。代码语言:javascript复制package basic.widget;
import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.jface.dialogs.*;
public class TextExample {
public TextExample() {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(370, 235);
shell.setText("Text 综合实例");
final Label label1 = new Label(shell, SWT.NONE);
label1.setBounds(25, 25, 60, 25);
label1.setText("User Name:");
final Text text1 = new Text(shell, SWT.BORDER);
text1.setBounds(90, 20, 80, 20);
// 当光标停留在该文本框时将出现提示信息
text1.setToolTipText("文本项不能为空");
final Label labe2 = new Label(shell, SWT.NONE);
labe2.setBounds(190, 25, 55, 25);
labe2.setText("PassWord:");
final Text text2 = new Text(shell, SWT.PASSWORD | SWT.BORDER);
text2.setBounds(250, 20, 80, 20);
// setTextLimit(int x)为常用组件方法,用来设置文本框中最多可输入的字符数。
text2.setTextLimit(8);
text2.setToolTipText("文本项不能为空,且输入不超过 8 位密码");
final Text text3 = new Text(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
text3.setBounds(50, 55, 250, 90);
final Button button1 = new Button(shell, SWT.NONE);
button1.setBounds(140, 160, 80, 20);
button1.setText("OK");
button1.setToolTipText("单击 OK 按钮,姓名将显示在下面的文本中");
button1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String AD = text1.getText();// 获得输入的文本内容
String BD = text2.getText();
// 判断输入文本是否为空
if (AD == null || AD.equals("") || BD == null || BD.equals(""))
{
MessageDialog.openInformation(shell, " 信息提示", "失败信息!" + ’\n’ + ’\n’ + " 注意:文本项不能为空!!!……");
} else
text3.append("User Name: " + ’\n’ + "" + AD + ’\n’
+ "PassWord:" + ’\n’ + "" + BD);
/**
* append()方法用来在文本框中显示内容。
* 将 append()方法改为 insert()方法可达到同样的效果
*/
}
});
final Button button2 = new Button(shell, SWT.NONE);
button2.setBounds(250, 160, 80, 20);
button2.setText("Cancel");
button2.setToolTipText("单击 Cancel 按钮,清除文本中的内容");
button2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
text1.setText("");// 清除文本内容方法
text2.setText("");
text3.setText("");
}
});
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
public static void main(String[] args) {
new TextExample();
}
}4:常用APIaddSelectionListener(SelectonListener listener) 添加监听器到监听器集合中,当某个 窗口部件被选中时通知监听集合。通过监听器发送在 SelectonListener 接口中定义的 一个消息来通知监听器。
addModifyListener(ModifyListener listener) 添加监听器到监听器集合中,当接收的文 本被修改时通知监听集合,通过监听器发送在 ModifyListener 接口中定义的一个消 息来通知监听器。 addVerifyListener(VerifyListener listener) 添加监听器到监听器集合中,当接收的文 本检验无误时通知监听集合,通过监听器发送在 VerifyListener 接口中定义的一个消 息来通知监听器。 append(String string)添加字符串。insert(String string)插入字符串。copy()复制选中的文本。cut()剪切选中的文本。paste()从剪贴板上粘贴文本。getLineCount()返回文本中的行数。getLineHeight()返回文本中一行的高度(以像素为单位)。getOrientation()返回文本行的定位,从左到右或从右到左(SWT.LEFT_TO_RIGHT、 SWT.RIGHT_TO_LEFT)。getText()获得文本内容。getSelectionText()获取选中的文本。getText(int start, int end)获取指定文本范围内的文本内容,文本起始位置为 0。getTextLimit()获取限制文本字符串的位数。setEditable(boolean editable)设置状态不可用(此处为文本不可编辑)。setTextLimit(int limit)设置文本框最多能输入的字符数。 setText(String string)设置接受者(这里指文本框)内的字符串。setEchoChar(char echo)设置为密码样式字符,如“*”。setOrientation(int orientation) 设置文本行的 定位,从左到右或从右到左 (SWT.LEFT_TO_RIGHT、SWT.RIGHT_TO_LEFT)selectAll()选中接收者(这里为文本框)中的文本。showSelection()显示所选的文本。clearSelection()清除所选文本五:Combo类下拉框(Combo)作用是用户从下拉项中 选择选项,用户也可以在下拉框(Combo)中键入选项值。
1.构造方法:代码语言:javascript复制public Combo (Composite parent, int style) 2:构造用法:代码语言:javascript复制 Combo combo=new Combo(shell,SWT.NONE);3:常用APIadd(String string)在下拉框的下拉选项最后添加一项。add(String string, int index)在下拉框的下拉选项的指定位置添加一项。 addModifyListener(ModifyListener listener) 添加监听器到监听器集合中,当接收的文 本被修改时通知监听集合,通过监听器发送到 ModifyListener 接口中定义的一个消 息来通知监听器。addSelectionListener(SelectonListener listener) 添加监听器到监听器集合中,当接收 者的选择改变时通知监听集合。通过监听器发送到 SelectonListener 接口中定义的一 个消息来通知监听器。clearSelection()将下拉框文本域中的选择设置为空。copy()复制选中的文本。cut()剪切选中的文本。paste()从剪贴板上粘贴文本。deselect(int index)将下拉框中所指定的选项清除,index 为下拉框的下拉项索引。deselectAll()清除在下拉项中所选的选项(当前选项)getItem(int index)获取接收者(这里是 Combo)下拉项中相对于零给定的索引选项。getItemCount()获取下拉框的下拉选项的数量。getItems()获取下拉框的下拉选项的字符串数组。select(int index)将下拉框的第 index+1 项设置为当前项。setItem(int index, String string)在下拉框的下拉项的指定位置设置选项。setText(String string)设置当前选项。setItems(String[] items)用数组为下拉框设置下拉项。remove(int index)将下拉框中清除相对于零的给定索引对应的选项。removeAll()将下拉框中的所有下拉选项清除。