`
djob2008
  • 浏览: 127450 次
  • 性别: 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事件处理的编码实现

    1.利用鼠标监听器监听鼠标双击事件。当在文本框中双击鼠标时,显示...2.利用键盘监听器监听键盘事件。当在文本框text1中输入信息,按回车键时将text1中的信息显示在text2中。 3.利用组件选择监听器,监听组件选择事件。

    Eclipse_Swt_Jface_核心应用_部分19

    8.3.2 键盘事件的各种属性 134 8.4 鼠标事件 136 8.4.1 鼠标事件程序示例 136 8.4.2 鼠标事件的各种属性 139 8.5 其他常用的事件 139 8.5.1 选中事件 139 8.5.2 文本修改程序示例 140 8.5.3 文本修改...

    Eclipse权威开发指南2.pdf

    2.4.4 改变键盘快捷键..... 54 2.4.5 定制JRE... 55 2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发...

    Eclipse权威开发指南3.pdf

    2.4.4 改变键盘快捷键..... 54 2.4.5 定制JRE... 55 2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 ...

    Eclipse权威开发指南1.pdf

    2.4.4 改变键盘快捷键..... 54 2.4.5 定制JRE... 55 2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 ...

    学生管理系统(我们学校优秀作品)

    //添加键盘监听 getContentPane().add(pass); final JButton button_1 = new JButton(); button_1.setForeground(new Color(255, 255, 255)); //设置按钮的事件处理 button_1.addActionListener(new ...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

Global site tag (gtag.js) - Google Analytics