请教键盘监听器的问题

gouven 2009-06-27 10:26:17
我想在一个JButton上添加一键盘监听器,使得在按下Ctrl+Enter时发生动作,请问下键盘监听器的类是这样写的吗?
userHashTable.remove(userName);
connectHashTable.remove(connection);
list.remove(userName);
user.setText("在线成员 ("+(list.getItemCount())+")");
...全文
117 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gouven 2009-06-27
  • 打赏
  • 举报
回复
谢谢大家的回答~
关于这个答案,我写了个类似的KeyAdapter,是可以用的。但我不知道为什么发送完消息,setText("")之后TextArea里的光标就直接从第二行开始了。但我想我的代码应该没有问题的.不知道大家有没有见过类似的情况
gouven 2009-06-27
  • 打赏
  • 举报
回复
已经解决了:
答案:http://komes.javaeye.com/blog/404707
abchd 2009-06-27
  • 打赏
  • 举报
回复
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
这两行可以不要
abchd 2009-06-27
  • 打赏
  • 举报
回复
不对,ke.getKeyCode()是不可能同时等于KeyEvent.VK_CONTROL和KeyEvent.VK_ENTER&&ke.getKeyCode()的
好像是使用一个&的方法来判断的,我没弄清楚这个反正,搞了个稍微麻烦点的,可以实现你要的这个功能

import java.awt.AWTEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;

public class MyTest extends JFrame{
private boolean ctrlPressed = false;

public MyTest(){
init();
}

private void init(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
setVisible(true);
setSize(300,300);
addKeyListener(new KeyListener(){

@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER&&ctrlPressed){
System.out.println(111);
}else if(e.getKeyCode()==KeyEvent.VK_CONTROL){
ctrlPressed = true;
}
}

@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_CONTROL){
ctrlPressed = false;
}
}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

});
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
}


public static void main(String[] args){
new MyTest();
}
}
gouven 2009-06-27
  • 打赏
  • 举报
回复
不好意思,粘贴错了。以下是键盘监听器的代码:
private class KListener extends KeyAdapter{
public void keyPressed(KeyEvent ke){
if(ke.getKeyCode()==KeyEvent.VK_ENTER&&ke.getKeyCode()==KeyEvent.VK_CONTROL){
sendMsg();
System.out.println("click");
}
else System.out.println("NO");
}
}

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧