`
snoopy7713
  • 浏览: 1152896 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

SWT添加键盘事件

    博客分类:
  • RAP
阅读更多

  sendText.addKeyListener(new KeyListener(){
   public void keyPressed(KeyEvent e) {
    if(e.keyCode == SWT.CR){
     //让按键原有的功能失效
     e.doit = false;
     //执行你自己的事件
     MessageBox box = new MessageBox(new Shell(), SWT.ICON_INFORMATION | SWT.OK);
        box.setText("提示信息");
        box.setMessage("按回车键了");
        box.open();
    }
   }
   public void keyReleased(KeyEvent e) {}
   });

  1. package  znewtest;  
  2.   
  3. import  java.net.InetSocketAddress;  
  4. import  java.text.DateFormat;  
  5. import  java.text.SimpleDateFormat;  
  6. import  java.util.Date;  
  7.   
  8. import  org.eclipse.swt.SWT;  
  9. import  org.eclipse.swt.events.KeyEvent;  
  10. import  org.eclipse.swt.events.KeyListener;  
  11. import  org.eclipse.swt.events.SelectionEvent;  
  12. import  org.eclipse.swt.events.SelectionListener;  
  13. import  org.eclipse.swt.layout.GridData;  
  14. import  org.eclipse.swt.layout.GridLayout;  
  15. import  org.eclipse.swt.widgets.Button;  
  16. import  org.eclipse.swt.widgets.Composite;  
  17. import  org.eclipse.swt.widgets.Display;  
  18. import  org.eclipse.swt.widgets.MessageBox;  
  19. import  org.eclipse.swt.widgets.Shell;  
  20. import  org.eclipse.swt.widgets.Text;  
  21.   
  22. public   class  keyWindow {  
  23.     Display display;  
  24.     Shell shell;  
  25.     GridLayout gridLayout;  
  26.     GridData layoutData;  
  27.     Composite composite;  
  28.     Text sendText;  
  29.     Text mesText;  
  30.     DateFormat formatter = new  SimpleDateFormat( "HH:mm:ss" );  
  31.     public  keyWindow(){  
  32.         display = Display.getDefault();  
  33.         shell = new  Shell(display);  
  34.         //初始化shell   
  35.         initShell();  
  36.           
  37.         layoutData = new  GridData();  
  38.         layoutData.widthHint = 260 ;  
  39.         layoutData.heightHint = 200 ;  
  40.         mesText = new  Text(shell, SWT.MULTI | SWT.WRAP   
  41.                 |SWT.V_SCROLL |SWT.BORDER);  
  42.         mesText.setLayoutData(layoutData);  
  43.           
  44.         layoutData = new  GridData();  
  45.         layoutData.widthHint = 260 ;  
  46.         layoutData.heightHint = 60 ;  
  47.         sendText = new  Text(shell, SWT.MULTI | SWT.WRAP   
  48.                 |SWT.V_SCROLL |SWT.BORDER);  
  49.         sendText.setLayoutData(layoutData);  
  50.         sendText.setFocus();  
  51.           
  52.         sendText.addKeyListener(new  KeyListener(){  
  53.             public   void  keyPressed(KeyEvent e) {  
  54.                 if (e.keyCode == SWT.CR){  
  55.                     //让按键原有的功能失效   
  56.                     e.doit = false ;  
  57.                     //执行你自己的事件   
  58.                     MessageBox box = new  MessageBox( new  Shell(), SWT.ICON_INFORMATION | SWT.OK);  
  59.                     box.setText("提示信息" );  
  60.                     box.setMessage("按回车键了" );  
  61.                     box.open();  
  62.                 }  
  63.             }  
  64.             public   void  keyReleased(KeyEvent e) {}  
  65.             });  
  66.     }  
  67.       
  68.     public   void  open() {  
  69.         shell.open();  
  70.         while  (!shell.isDisposed()) {  
  71.             if  (!display.readAndDispatch()) {  
  72.                 display.sleep();  
  73.             }  
  74.         }  
  75.     }  
  76.       
  77.     /**  
  78.      * 设置窗口的标题、位置、大小、图标  
  79.      * @return Shell  
  80.      */   
  81.     public  Shell initShell(){  
  82.         shell.setText("交谈" );  
  83.         shell.setSize(400 350 );  
  84.         shell.setLayout(new  GridLayout());  
  85.         return  shell;     
  86.     }  
  87.     /**  
  88.      * 向聊天区域添加信息  
  89.      * @param msg  
  90.      */   
  91.     public   void  addString(String mes)  
  92.     {  
  93.         mesText.setText(mes + "/n"  + mesText.getText());  
  94.     }  
  95.       
  96.     public   static   void  main(String[] args) {  
  97.         new  keyWindow().open();  
  98.     }  
  99. }  

 

完整示例

 

Color red = display.getSystemColor(SWT.COLOR_RED);
Font font = display.getSystemFont();
control.setFont(font)

Style

Description

SWT.WRAP

Wrap the text to fit the visible area

SWT.LEFT

Left-align the label

SWT.CENTER

Center-align the label

SWT.RIGHT

Right-align the label

SWT.SEPARATOR

Draw a separator instead of text or an image

SWT.HORIZONTAL

Draw the separator horizontally

SWT.VERTICAL

Draw the separator vertically

SWT.SHADOW_IN

Draw the separator with a "shadow in" effect

SWT.SHADOW_OUT`

Draw the separator

Separators

键盘事件类型

SWT.KeyDown

A key was pressed

SWT.KeyUp

A key was released

 

KeyEvent

KeyListener (and KeyAdapter)

keyPressed(KeyEvent)

keyReleased(KeyEvent)



关于event中的character特殊键值

SWT.BS

退回 ('/b')

SWT.CR

回车 ('/r')

SWT.DEL

删除 ('/u007F')

SWT.ESC

ESC ('/u001B')

SWT.LF

换行 ('/n')

SWT.TAB

TAB跳格 ('/t')

 

SWT.CONTROL

 <Ctrl>同 SWT.CTRL

SWT.SHIFT

 <Shift>

SWT.ALT

 <Alt> 

分享到:
评论
1 楼 zhengcai2 2012-09-14  

相关推荐

    swt事件处理的编码实现

    对于键盘事件,SWT提供了`KeyListener`接口。我们可以实现`keyPressed(KeyEvent)`方法来监听按键被按下时的事件。在这个例子中,我们关注的是用户在`text1`文本框中按下回车键的情况。当用户按下回车键(其键码通常...

    java swt自定义控件

    SWT定义了一系列事件类型,如`SWT.Paint`、`SWT.MouseClick`等。 ```java @Override public void addListener(int eventType, Listener listener) { super.addListener(eventType, listener); // 根据eventType...

    SWT widgets基本教程

    - 用于监听键盘按键事件。 - 示例代码: ```java text1.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { System.out.println("Key released: " + e.character); } }); ...

    SWT设计.pdf.rar

    2. **事件驱动**:SWT遵循事件驱动模型,允许开发者响应用户的键盘、鼠标输入和其他事件,为应用程序添加交互性。 3. **丰富的控件集**:SWT提供了大量的控件,如按钮、文本框、列表、树视图、表视图等,满足各种...

    Swt的API使用说明

    例如,可以使用`MouseListener`和`KeyListener`来处理鼠标和键盘事件,`SelectionListener`来处理控件的选择事件。 **6. 资源管理** Swt API中的`Display`类是整个GUI的主要入口点,负责管理窗口和线程。`Shell`类...

    swt - designer 学习实例

    在学习SWT时,首先需要了解它的基本概念,例如 SWT组件、布局管理以及事件处理机制。SWT组件是构建GUI的基本元素,包括Button、Label、Text、Shell等,它们对应于常见的GUI控件。每个组件都有其特定的方法和属性,...

    org.eclipse.swt包

    例如,`SelectionListener`用于监听按钮点击事件,`KeyListener`和`MouseListener`分别用于处理键盘和鼠标事件。 - 通过实现特定的接口或继承抽象类,你可以定义自己的事件处理器。 4. **数据绑定**: - SWT支持...

    SWT开发的浏览器(Java)--源代码

    例如,当用户在地址栏输入并按下回车键时,可以添加一个`KeyListener`监听键盘事件,然后根据输入的URL启动加载新页面的过程。同时,为了确保安全,开发者还需要考虑对URL的验证和异常处理。 最后,项目提供的`swt....

    swt 开发学习

    事件处理涉及添加监听器,例如MouseListener、KeyListener、SelectionListener等,用于响应用户的点击、键盘输入等操作。 在实际开发中,JFace和Eclipse RCP(Rich Client Platform)常常与SWT一起使用。JFace是...

    SWT.rar_swt自定义组件

    5. 事件处理:SWT中的事件处理机制基于监听器模式,通过`addXXXListener`方法添加各种类型的监听器,如`MouseListener`、`KeyListener`、`SelectionListener`等,以便在用户与组件交互时执行相应的操作。 6. 资源...

    SWT综合教程及安装指导

    1. 事件监听:SWT中的事件包括按钮点击、键盘输入、鼠标移动等,通过实现相关监听器接口并添加到组件上,可以捕获并处理这些事件。 2. 信号和槽:SWT采用信号和槽的概念,信号表示某个事件的发生,槽是事件发生时...

    SWT 自定义控件

    - **事件处理**:为了使控件具备更好的交互性,通常需要响应键盘事件,例如方向键用于改变列表中选中的项。 **实践步骤**: 1. **监听FocusListener**:监听控件获得或失去焦点的事件。 2. **监听KeyListener**:当...

    swt总结draw2d绘图

    - 事件处理(Event Handling):Draw2D支持鼠标和键盘事件,可以为Figure添加监听器来响应用户交互。 7. 示例应用: Draw2D常用于创建图表、流程图、网络拓扑图等。例如,开发者可以使用Draw2D创建一个可交互的流程...

    Java SWT 简单 拼图 游戏 源码

    4. 用户交互:SWT提供了丰富的事件监听机制,例如`MouseListener`和`KeyListener`,用于处理用户的点击和键盘输入。通过监听这些事件,我们可以实现拖放功能,允许用户通过鼠标选择和移动拼图块。 5. 恢复功能:...

    draw2d,swt

    - **响应用户输入**:通过监听器处理用户的鼠标和键盘事件。 - **直接编辑功能**:允许用户直接在图形上进行编辑操作,提高用户体验。 - **连接操作**:使用`Connector`实现图形之间的连接。 #### 七、撤销/重做...

    初学SWT&JFace

    2. **事件处理**:SWT使用监听器模式处理用户交互,通过添加Listener、ActionListener等接口,可以响应用户的点击、键盘输入等事件。 3. **JFace的数据绑定**:JFace的DataBinding允许开发者将UI控件与模型对象的...

    Standard Widget Toolkit(Java swt)类库以及安装文档

    - **Event和Listener**: SWT事件模型允许用户响应各种事件,如鼠标点击、键盘输入等。 **3. 安装SWT类库** 我们提到的是SWT-4.2.2-win32-win32-x86版本,这是针对32位Windows系统的。安装过程包括以下几个步骤: 1....

Global site tag (gtag.js) - Google Analytics