`
djob2008
  • 浏览: 130531 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

SWT添加键盘事件

阅读更多

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) {}
   });

package znewtest;

import java.net.InetSocketAddress;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class keyWindow {
	Display display;
	Shell shell;
	GridLayout gridLayout;
	GridData layoutData;
	Composite composite;
	Text sendText;
	Text mesText;
	DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
	public keyWindow(){
		display = Display.getDefault();
		shell = new Shell(display);
		//初始化shell
		initShell();
		
		layoutData = new GridData();
		layoutData.widthHint = 260;
		layoutData.heightHint = 200;
		mesText = new Text(shell, SWT.MULTI | SWT.WRAP 
	    		|SWT.V_SCROLL |SWT.BORDER);
		mesText.setLayoutData(layoutData);
		
		layoutData = new GridData();
		layoutData.widthHint = 260;
		layoutData.heightHint = 60;
		sendText = new Text(shell, SWT.MULTI | SWT.WRAP 
	    		|SWT.V_SCROLL |SWT.BORDER);
		sendText.setLayoutData(layoutData);
		sendText.setFocus();
		
		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) {}
			});
	}
	
	public void open() {
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}
	
	/**
	 * 设置窗口的标题、位置、大小、图标
	 * @return Shell
	 */
	public Shell initShell(){
		shell.setText("交谈");
		shell.setSize(400, 350);
        shell.setLayout(new GridLayout());
		return shell;	
	}
	/**
	 * 向聊天区域添加信息
	 * @param msg
	 */
	public void addString(String mes)
	{
		mesText.setText(mes + "\n" + mesText.getText());
	}
	
	public static void main(String[] args) {
		new keyWindow().open();
	}
}

 完整示例

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>
 


发表于 @ 2009年04月16日 10:35:00 | 评论( 0 ) | 编辑| 举报| 收藏

旧一篇:swt定时器的实现 | 新一篇:SWT之构建FTP文件目录树

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guijava/archive/2009/04/16/4083331.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guijava/archive/2009/04/16/4083331.aspx

分享到:
评论

相关推荐

    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