首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

14.3  键 盘 事 件

键盘事件是最简单也是最常用的事件。一般来说,键盘事件有两种:键按下和键松开。SWT通过KeyListener响应键盘事件。

14.3.1  KeyListener接口

在SWT中,通过实现KeyListener接口来响应键按下和松开的事件。KeyListener接口如例程14-5所示。

例程14-5  KeyListener.java

package org.eclipse.swt.events;

import org.eclipse.swt.internal.SWTEventListener;

public interface KeyListener extends SWTEventListener {

public void keyPressed(KeyEvent e);

public void keyReleased(KeyEvent e);

}

其中,keyPressed表示键按下事件的响应方法,keyReleased表示键松开事件的响应方法,KeyEvent为系统传入的键盘事件的参数,用户可以通过KeyEvent参数找到相应的按键值。

14.3.2  键盘事件实例

为了更深入地了解键盘事件,下面通过具体的实例演示如何响应键盘事件。该程序只是当事件触发时简单地打印出相应信息,在具体的实例中,读者可以根据需要进行修改,代码如例程14-6所示。

例程14-6  KeyListenerExample.java

public class KeyListenerExample {

       Display display;

       Shell shell;

       KeyListenerExample() {

         display = new Display();

         shell = new Shell(display);

         shell.setSize(250, 200);

         shell.setText("A KeyListener Example");

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

         text.setBounds(50 ,50 ,100, 20);

         text.addKeyListener(new KeyListener() {

           public void keyPressed(KeyEvent e) {

             

             System.out.println("key Pressed -"+e.character);

           }

           public void keyReleased(KeyEvent e) {

             System.out.println("key Released -"+e.character);

           }

         });

         shell.open();

         while (!shell.isDisposed()) {

           if (!display.readAndDispatch())

             display.sleep();

         }

         display.dispose();

       }

       public static void main(String[] args) {

         new KeyListenerExample();

       }

     }

程序中通过匿名内部类实现监听器,这种方式在实例开发中会经常用到。另外可以通过KeyEvent取得按键的值,如上例的“e.character”得到按键的字符,程序运行效果如图14-2所示。

图14-2  键盘事件实例

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论