代码如下,文本框却可以监听到回车键,而按钮却监听不到package swt;import java.text.DateFormat;
import java.text.SimpleDateFormat;import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;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 KeyAction {
Display display;
Shell shell;
GridLayout gridLayout;
GridData layoutData;
GridData layoutData2;
Composite composite;
Text sendText;
Text mesText;
Button btok;
DateFormat formatter = new SimpleDateFormat("HH:mm:ss"); public KeyAction() {
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();
btok = new Button(shell, SWT.PUSH);
btok.setText("Button");
layoutData2 = new GridData();
layoutData2.widthHint = 80;
layoutData2.heightHint = 20;
btok.setLayoutData(layoutData2);
btok.setFocus(); btok.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_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) {
}
});
sendText.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_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 KeyAction().open();
}
}
import java.text.SimpleDateFormat;import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;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 KeyAction {
Display display;
Shell shell;
GridLayout gridLayout;
GridData layoutData;
GridData layoutData2;
Composite composite;
Text sendText;
Text mesText;
Button btok;
DateFormat formatter = new SimpleDateFormat("HH:mm:ss"); public KeyAction() {
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();
btok = new Button(shell, SWT.PUSH);
btok.setText("Button");
layoutData2 = new GridData();
layoutData2.widthHint = 80;
layoutData2.heightHint = 20;
btok.setLayoutData(layoutData2);
btok.setFocus(); btok.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_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) {
}
});
sendText.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_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 KeyAction().open();
}
}
解决方案 »
- 加密器Cipher.getInstance(转换实例),求解?
- 如何反射忽略某一属性
- 简单的数组排序问题。。
- 如何用正则表达式描述一个SQL中的insert语句???
- 关于socket发送信息的问题,大侠帮我看看啊
- if(true)的问题。
- Jtree带有复选框功能实现了,如果获取被选中项(复选框勾选了的)??求解、非常感谢
- 关于getFontMetrics()的问题。
- 请问怎样将InputStream的内容读到String中?
- 一个数组问题,请指教.
- 急!request.getParameter(String name)如何获取long的数据
- 我刚安装了MyEclipse但是不能建立html文件
参考这里
http://blog.csdn.net/frank_softworks/archive/2007/05/29/1629615.aspx