前言
我找了许多资料,发现SWT的很少,但是工作的时候在Eclipse开发窗口化的时候会用到,它相对于Swing来说,外观要更好看一些,性能也好一些,Swing是集成在IDEAJ上的,我通过看SWT face了解一些知识,总结在这里。
一:Display
是Display的对象,它用来管理事件的循环,Display对象代表了程序级的SWT各个类和底层系统窗口连接的实现。
代码:
1. while(!shell.isDisposed()){ 2. if(!display.readAndDispatch()) 3. diaplay.sleep(); 4. }
通过readAndDispatch()方法进行读取事件
二:常用API
- getText()获取组件标签文字,如标签未设或分隔符则返回空值
- getImage()获取文本或图像
- setText(String string)设置组件文字
- setImage(Image image)设置图像
- setAlignment(int alignment)设置文本或图像如何在容器显示,对齐方式:SWT.LEFT SWT.CENTER SWT.RIGHT
三:Button
这个我们都熟悉了,他的实例化代码为:
Button button = new Button(shell,SWT(这里写BUtton的按钮类型))
按钮常用API:
setSelection(Boolen selected)如果接受者样式为SWT.CHECK,SWT.RADIO,SWT.TOGGLE样式风格,则可以设置他的选择状态
四:Text类
文本框用来接收键盘的输入信息。它和按钮一 样都是常用的 SWT 组件,二者常常配合使用
1.定义文本框方法 构造方法:
public Text(Composite parent,int style)
2:构造用法:
Text text=new Text(shell,SWT.NONE); text.setBounds(20, 15, 80, 25);
3:实例
- 向用户信息文本框输入文本信息,单击“OK”按钮,输入的文本将显示在文本框中。 单击“Cancel”按钮将清除文本内容。
- 文本框不能为空,否则单击“OK”按钮将弹出提示对话框。且对输入的文本长度作 了限制,不能超过 8 个字符。
- 设置了提示信息,当鼠标停留在“文本框”、“按钮”时将出现提示信息。此方法既可以起到帮助功能又可以起到容错功能。
1. package basic.widget; 2. import org.eclipse.swt.*; 3. import org.eclipse.swt.events.*; 4. import org.eclipse.swt.widgets.*; 5. import org.eclipse.jface.dialogs.*; 6. public class TextExample { 7. public TextExample() { 8. final Display display = Display.getDefault(); 9. final Shell shell = new Shell(); 10. shell.setSize(370, 235); 11. shell.setText("Text 综合实例"); 12. final Label label1 = new Label(shell, SWT.NONE); 13. label1.setBounds(25, 25, 60, 25); 14. label1.setText("User Name:"); 15. final Text text1 = new Text(shell, SWT.BORDER); 16. text1.setBounds(90, 20, 80, 20); 17. // 当光标停留在该文本框时将出现提示信息 18. text1.setToolTipText("文本项不能为空"); 19. final Label labe2 = new Label(shell, SWT.NONE); 20. labe2.setBounds(190, 25, 55, 25); 21. labe2.setText("PassWord:"); 22. final Text text2 = new Text(shell, SWT.PASSWORD | SWT.BORDER); 23. text2.setBounds(250, 20, 80, 20); 24. // setTextLimit(int x)为常用组件方法,用来设置文本框中最多可输入的字符数。 25. text2.setTextLimit(8); 26. text2.setToolTipText("文本项不能为空,且输入不超过 8 位密码"); 27. final Text text3 = new Text(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); 28. text3.setBounds(50, 55, 250, 90); 29. final Button button1 = new Button(shell, SWT.NONE); 30. button1.setBounds(140, 160, 80, 20); 31. button1.setText("OK"); 32. button1.setToolTipText("单击 OK 按钮,姓名将显示在下面的文本中"); 33. button1.addSelectionListener(new SelectionAdapter() { 34. public void widgetSelected(SelectionEvent e) { 35. String AD = text1.getText();// 获得输入的文本内容 36. String BD = text2.getText(); 37. // 判断输入文本是否为空 38. if (AD == null || AD.equals("") || BD == null || BD.equals("")) 39. { 40. MessageDialog.openInformation(shell, " 信息提示", "失败信息!" + ’\n’ + ’\n’ + " 注意:文本项不能为空!!!……"); 41. } else 42. text3.append("User Name: " + ’\n’ + "" + AD + ’\n’ 43. + "PassWord:" + ’\n’ + "" + BD); 44. /** 45. * append()方法用来在文本框中显示内容。 46. * 将 append()方法改为 insert()方法可达到同样的效果 47. */ 48. } 49. }); 50. final Button button2 = new Button(shell, SWT.NONE); 51. button2.setBounds(250, 160, 80, 20); 52. button2.setText("Cancel"); 53. button2.setToolTipText("单击 Cancel 按钮,清除文本中的内容"); 54. button2.addSelectionListener(new SelectionAdapter() { 55. public void widgetSelected(SelectionEvent e) { 56. text1.setText("");// 清除文本内容方法 57. text2.setText(""); 58. text3.setText(""); 59. } 60. }); 61. shell.open(); 62. shell.layout(); 63. while (!shell.isDisposed()) { 64. if (!display.readAndDispatch()) 65. display.sleep(); 66. } 67. } 68. public static void main(String[] args) { 69. new TextExample(); 70. } 71. }
4:常用API
addSelectionListener(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.构造方法:
public Combo (Composite parent, int style)
2:构造用法:
Combo combo=new Combo(shell,SWT.NONE);
3:常用API
- add(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()将下拉框中的所有下拉选项清除。