什么是事件?点击鼠标是一个事件,按下一个按钮也一个事件,关闭一个窗口也是一个事件。

什么是监听器?监听器就是监听事件什么时候发生的,用来控制事件发生的具体动作。(个人见解)

事件产生处的SWT组件称为事件源,(官方)

对事件作出具体动作称为监听器(Listener)。监听器负责监听组件上的事件,并对发生的事件进行处理。基本的模式是将一个监听器添加到已经创建的组件中,当相应的事件发生时,监听器的代码就会被执行。

SWT 的常用事件

每一种类型的监听器,都有一个接口来定义这种监听器,由类提供事件信息,由应用程序接口方法负责添加监听器。如果一个监听器接口中定义了多个方法,则会提供一个适配器来实现监听器接口并同时提供空方法。所有的事件、监听器和适配器都放在包org.eclipse.swt.events中。

例如,添加组件选择事件的监听器为addSelectionListener,事件为

SelectionEvent,相应的适配器为SelectionAdapter。添加鼠标事件的监听器为addMouseListener,事件为MouseEvent,相应的适配器为MouseAdapter。SWT中常用的事件如下:

1.addMouseListener 鼠标监听器。常用方法:

mouseDown() 鼠标按下时触发。

mouseUP() 鼠标放开时触发。

mouseDoubleClick() 鼠标双击时触发。

2.addKeyListener 按键监听器。常用方法:

keyPressed() 当焦点在组件上时,按下键盘任一键时触发。但对某些组件(如按钮Button),按回车键时不能触发。keyReleased() 按键弹起时触发。

3.addSelectionListener 组件选择监听器。常用方法:

widgetSelected() 当组件被选择(单击鼠标、焦点在组件上时按回车键)时触发。

4.addFocusListener 焦点监听器。常用方法:

focusGained() 得到焦点时触发。

focusLost() 失去焦点时触发。

SWT 的常用监听器应用实例

鼠标监听器,监听鼠标双击事件。

package edu.ch4;

import org.eclipse.swt.widgets.*;

import org.eclipse.swt.layout.*;

import org.eclipse.swt.events.*;

import org.eclipse.swt.SWT;

public class Sample4_18 {

static Text text;

public static void main(String[] args) {

Display display = new Display();

final Shell shell = new Shell(display);

RowLayout rowLayout=new RowLayout();

rowLayout.marginWidth=20;

rowLayout.marginHeight=30;

shell.setLayout(rowLayout);

shell.setText("SWT事件处理示例");

PDF 文件使用 "pdfFactory" 试用版本创建www.fineprint.cn

text=new Text(shell,SWT.BORDER|SWT.WRAP);

RowData rowData=new RowData();

rowData.width=100;

rowData.height=50;

text.setLayoutData(rowData);

//将鼠标监听器用于text组件

text.addMouseListener(new MouseAdapter() { //采用鼠标监听适配器

public void mouseDoubleClick(MouseEvent e) { //监听鼠标双击事件的方法

text.setText("文本框中鼠标双击事件发生!"); //在text中显示信息

//声明信息对话框对象,并在对话框中显示信息

MessageBox dialog=new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);

dialog.setText("Double click");

dialog.setMessage("文本框中鼠标双击事件发生!");

dialog.open();

}});

shell.pack();

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

display.dispose();

}

}

键盘监听器,监听键盘事件。

package edu.ch4;

import org.eclipse.swt.widgets.*;

import org.eclipse.swt.layout.*;

import org.eclipse.swt.events.*;

import org.eclipse.swt.SWT;

import org.eclipse.swt.graphics.*;

public class Sample4_19 {

Text text1,text2;

PDF 文件使用 "pdfFactory" 试用版本创建www.fineprint.cn

public Sample4_19() {

Display display = new Display();

Shell shell = new Shell(display,SWT.SHELL_TRIM);

GridLayout layout=new GridLayout();

layout.numColumns=2;

shell.setLayout(layout);

shell.setText("Event demo");

Label label1=new Label(shell,SWT.RIGHT);

label1.setText("text1:");

text1=new Text(shell,SWT.BORDER|SWT.WRAP);

GridData gridData1=new GridData(100,30);

text1.setLayoutData(gridData1);

text1.addKeyListener(new KeyAdapter(){ //添加按键监听器于text1上

public void keyPressed(KeyEvent e) { //监听键盘按键

if(e.keyCode==SWT.CR) //当按键为回车键时触发

text2.setText(text1.getText());}});

Label label2=new Label(shell,SWT.RIGHT);

label2.setText("text2:");

text2=new Text(shell,SWT.BORDER|SWT.WRAP);

GridData gridData2=new GridData(100,30);

text2.setLayoutData(gridData2);

text2.setEditable(false);

text2.setBackground(new Color(display,255,255,255));

shell.pack();

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

display.dispose();

}

public static void main(String[] args) {

Sample4_19 s4_19=new Sample4_19();

}

}

组件选择监听器,监听组件选择事件。

package edu.ch4;

import org.eclipse.swt.widgets.*;

import org.eclipse.swt.layout.*;

import org.eclipse.swt.events.*;

import org.eclipse.swt.SWT;

public class Sample4_20 {

static Display display = new Display();

static final Shell shell = new Shell(display,SWT.SHELL_TRIM);

public static void main(String[] args) {

shell.setText("组件选择事件示例");

Button button=new Button(shell,SWT.PUSH);

button.setText("请点击我");

RowLayout layout=new RowLayout();

layout.marginHeight=10;

layout.marginWidth=20;

shell.setLayout(layout);

RowData data=new RowData(80,40);

button.setLayoutData(data);

button.addSelectionListener(new SelectionAdapter(){

public void widgetSelected(SelectionEvent e){

MessageBox dialog=new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);

dialog.setText("组件选择事件");

dialog.setMessage("你好,SWT世界!");

dialog.open();

}

});

shell.pack();

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

display.dispose();

}

}

java swt text 回车事件,Java SWT事件相关推荐

  1. java 模拟鼠标键盘_使用SWT模拟鼠标键盘事件

    二.使用SWT中的鼠标键盘事件 在SWT的snippets中有两个例子用来介绍这两个方法的使用,如下: (1).模拟鼠标事件 * UI Automation (for testing tools) s ...

  2. java 回车 按钮事件,java--键盘事件类,按下回车则模拟鼠标

    import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JButton; import ...

  3. Java桌面应用程序设计新贵:SWT 简介

    <script type="text/javascript"> google_ad_client = "pub-8800625213955058"; ...

  4. Java桌面应用程序设计新贵:SWT简介

    Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符,至今仍然很少能看到非常成功Java桌面程序.虽然有JBuilder,Netbean,JProbe等大型软件作为代表,但这仍不 ...

  5. java 进度条 swt_SWT综合实例+SWT进度条对话框代码

    说明:SWT综合实例实现了一个QQ的简化界面,基本上用到了SWT的各方面; 使用SWT要先导入一个SWT的dll文件,本例导入的dll文件名为:swt-win32-3139.dll QQ.java源文 ...

  6. java 选中当前,Java开发网 - 请问如何获得SWT中List widget当前选中的项目

    估计和事件有关和List没有直接关系 你实现mouseUp就可以了 import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; impor ...

  7. java 文本框输入监听事件_JAVA GUI 事件监听事件 详解 和 案例.

    GUI(图形用户界面) Graphical User Interface(图形用户接口) 用图形的 方式, 来显示 计算机操作的 界面, 这样更方便 更直观. CLI Command Line Use ...

  8. java实用教程——组件及事件处理——ActionEvent事件

    事件源: 文本框,按钮,菜单项,密码框,单选按钮 注册监视器: 能够触发ActionEvent事件的组件使用方法 addActionListener(ActionListener listener) ...

  9. java swt designerpdf_eclipse学习笔记!(4) ----- SWT Designer 下 SWT常用组件

    一个button类的实例 基本的步骤和之前的是一样的,一个SWT的项目,然后在页面设置面板里添加button.双击button(直接在source里面添加了监听器的代码).下面是代码: publicc ...

最新文章

  1. kotlin ++ --_顺便说一句-探索Kotlin代表团
  2. cadence原理图封装pin名称重复_硬件工程师必备技巧--如何快速制作PCB封装
  3. Java中使用Observer接口和Observable类实践Observer观察者模式
  4. 剑指Kubernetes 揭秘腾讯云的PaaS技术选型策略
  5. 《Java程序设计》实验报告——Java的对象与类
  6. PHP中文字符串编码转换
  7. mutli-lane情况
  8. html插入图片和文字,HTML第三课文字图片插入
  9. 两名黑客因发现特斯拉漏洞获Model 3一辆和3.5万美元奖金
  10. 【转】缺少servlet-api.jar包
  11. 电工模拟接线软件 app_超全的电工接线方法口诀
  12. SNN系列|神经元模型篇(2) Izhikevich
  13. 酷狗音乐flac转换成mp3格式
  14. 暑假计算机教育培训总结,暑假信息技术培训心得
  15. Unreal蓝图入门 节点
  16. 安霸Ambarella CV系列芯片
  17. Win8 纯净版安装详细教程
  18. unity下载模型到本地并加载
  19. 在excel中等间距抽取数据
  20. 计蒜客习题:迷阵突围

热门文章

  1. golang中的http server和http client
  2. pymongo的使用
  3. React Native Styling:样式化的组件,Flexbox布局等
  4. web可用性测试_Web开发人员和设计人员的最佳可用性测试工具
  5. 固态硬盘对于linux提升,对提升Linux下固态硬盘使用率的探讨
  6. python问题分享_零基础入门Python常见问题分享
  7. 设置maven的阿里云代理
  8. 5个趣味Python练手项目
  9. 使用Python从PDF文件中提取数据
  10. Python爬虫解析网页的4种方式 值得收藏