【SWT】常用代码及接口(一)

简介: 【SWT】常用代码及接口(一)

前言

 

我找了许多资料,发现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

  1. getText()获取组件标签文字,如标签未设或分隔符则返回空值
  2. getImage()获取文本或图像
  3. setText(String string)设置组件文字
  4. setImage(Image image)设置图像
  5. 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:实例

  1. 向用户信息文本框输入文本信息,单击“OK”按钮,输入的文本将显示在文本框中。 单击“Cancel”按钮将清除文本内容。
  2. 文本框不能为空,否则单击“OK”按钮将弹出提示对话框。且对输入的文本长度作 了限制,不能超过 8 个字符。
  3. 设置了提示信息,当鼠标停留在“文本框”、“按钮”时将出现提示信息。此方法既可以起到帮助功能又可以起到容错功能。
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 接口中定义的 一个消息来通知监听器。

  1. addModifyListener(ModifyListener listener) 添加监听器到监听器集合中,当接收的文 本被修改时通知监听集合,通过监听器发送在 ModifyListener 接口中定义的一个消 息来通知监听器。 addVerifyListener(VerifyListener listener) 添加监听器到监听器集合中,当接收的文 本检验无误时通知监听集合,通过监听器发送在 VerifyListener 接口中定义的一个消 息来通知监听器。 append(String string)添加字符串。
  2. insert(String string)插入字符串。
  3. copy()复制选中的文本。
  4. cut()剪切选中的文本。
  5. paste()从剪贴板上粘贴文本。
  6. getLineCount()返回文本中的行数。
  7. getLineHeight()返回文本中一行的高度(以像素为单位)。
  8. getOrientation()返回文本行的定位,从左到右或从右到左(SWT.LEFT_TO_RIGHT、 SWT.RIGHT_TO_LEFT)。
  9. getText()获得文本内容。
  10. getSelectionText()获取选中的文本。
  11. getText(int start, int end)获取指定文本范围内的文本内容,文本起始位置为 0。
  12. getTextLimit()获取限制文本字符串的位数。
  13. setEditable(boolean editable)设置状态不可用(此处为文本不可编辑)。
  14. setTextLimit(int limit)设置文本框最多能输入的字符数。 setText(String string)设置接受者(这里指文本框)内的字符串。
  15. setEchoChar(char echo)设置为密码样式字符,如“*”。
  16. setOrientation(int orientation) 设置文本行的 定位,从左到右或从右到左 (SWT.LEFT_TO_RIGHT、SWT.RIGHT_TO_LEFT)
  17. selectAll()选中接收者(这里为文本框)中的文本。
  18. showSelection()显示所选的文本。
  19. clearSelection()清除所选文本

五:Combo类

下拉框(Combo)作用是用户从下拉项中 选择选项,用户也可以在下拉框(Combo)中键入选项值。

1.构造方法:

public Combo (Composite parent, int style)

2:构造用法:

Combo combo=new Combo(shell,SWT.NONE);

3:常用API

  1. add(String string)在下拉框的下拉选项最后添加一项。
  2. add(String string, int index)在下拉框的下拉选项的指定位置添加一项。 addModifyListener(ModifyListener listener) 添加监听器到监听器集合中,当接收的文 本被修改时通知监听集合,通过监听器发送到 ModifyListener 接口中定义的一个消 息来通知监听器。
  3. addSelectionListener(SelectonListener listener) 添加监听器到监听器集合中,当接收 者的选择改变时通知监听集合。通过监听器发送到 SelectonListener 接口中定义的一 个消息来通知监听器。
  4. clearSelection()将下拉框文本域中的选择设置为空。
  5. copy()复制选中的文本。
  6. cut()剪切选中的文本。
  7. paste()从剪贴板上粘贴文本。
  8. deselect(int index)将下拉框中所指定的选项清除,index 为下拉框的下拉项索引。
  9. deselectAll()清除在下拉项中所选的选项(当前选项)getItem(int index)获取接收者(这里是 Combo)下拉项中相对于零给定的索引选项。
  10. getItemCount()获取下拉框的下拉选项的数量。
  11. getItems()获取下拉框的下拉选项的字符串数组。
  12. select(int index)将下拉框的第 index+1 项设置为当前项。
  13. setItem(int index, String string)在下拉框的下拉项的指定位置设置选项。
  14. setText(String string)设置当前选项。
  15. setItems(String[] items)用数组为下拉框设置下拉项。
  16. remove(int index)将下拉框中清除相对于零的给定索引对应的选项。
  17. removeAll()将下拉框中的所有下拉选项清除。
相关文章
|
机器学习/深度学习 自然语言处理 数据可视化
掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)
掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)
|
开发框架 JSON 前端开发
Go主流框架对比:Gin Echo Beego Iris
由于go的标准库非常丰富,尤其是net/http包的存在,基本上把别的语言需要通过框架搞的事情都做了,不用框架光用标准库也能顺畅的开发需求了。
3022 0
|
12月前
|
流计算 UED
「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现
本篇教程将带你实现一个简易购物车功能。通过使用接口定义商品结构,我们将创建一个动态购物车,支持商品的添加、移除以及实时总价计算。
393 69
「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现
|
9月前
|
Python
使用 Python 合并微信与支付宝账单,生成财务报告
这篇博客介绍了如何使用 Python 脚本合并微信与支付宝账单数据,生成自动化财务报告。通过 pandas 库,学习如何清洗、合并和分析账单数据,以及如何生成 Markdown 格式的财务报告。
|
监控 Java Sentinel
Hystrix和Sentinel有什么异同
Hystrix 和 Sentinel 是提升微服务架构稳定性的流行组件,均支持服务熔断与限流,提供实时监控。Hystrix 通过线程池和信号量实现服务隔离,Sentinel 基于流量控制和系统负载保护,各有特色。
458 0
|
机器学习/深度学习 自然语言处理 并行计算
|
开发工具 Android开发
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
651 1
|
存储 JavaScript 前端开发
无需构建工具,快速上手Vue2 + ElementUI
在不使用构建工具的情况下,快速搭建Vue2+ElementUI应用:直接在HTML中引入Vue和Element UI的CDN,创建Vue实例,绑定数据和组件。示例展示了如何使用Element UI的按钮和复选框组创建权限设置界面。通过Vue的响应式系统和组件化实现数据绑定和界面更新。完整代码包括设置权限按钮和三个复选框组,预设了城市权限选项。
653 0
无需构建工具,快速上手Vue2 + ElementUI
|
机器学习/深度学习 算法 计算机视觉
【YOLOv10改进 -卷积Conv】 AKConv(可改变核卷积):任意数量的参数和任意采样形状的即插即用的卷积
AKConv是一种可改变核卷积,旨在解决传统卷积的局限,包括固定大小的卷积窗口和卷积核尺寸。AKConv提供灵活的卷积核参数和采样形状,适应不同尺度特征。其创新点包括:1)支持任意大小和形状的卷积核;2)使用新算法确定初始采样位置;3)应用动态偏移调整采样位置;4)优化模型参数和计算效率。AKConv已应用于YOLOv8,提高网络性能。相关代码可在<https://github.com/CV-ZhangXin/AKConv>找到。
|
存储 Java 调度
Android面试题之Kotlin协程到底是什么?它是线程吗?
本文探讨了协程与线程的区别,指出协程并非线程,而是轻量级的线程替代。协程轻量体现在它们共享调用栈,内存占用少,仅需几个KB。协程切换发生在用户态,避免了昂贵的内核态切换。在Kotlin中,协程通过Continuation对象实现上下文保存,允许高效并发执行,而不会像线程那样消耗大量资源。通过`runBlocking`和`launch`示例展示了协程的非阻塞挂起特性。总结来说,协程的轻量主要源于内存占用少、切换开销低和高并发能力。
526 0