`

java swing 按键按下只调用一次

阅读更多

我使用java swing做了一个密码管理系统,并且在登录界面增加了回车事件,但是每次回车时会触发两次。

界面:

 

回车事件处理代码:

Toolkit toolkit = Toolkit.getDefaultToolkit();
		// 注册应用程序全局键盘事件, 所有的键盘事件都会被此事件监听器处理.
		toolkit.addAWTEventListener(
				new java.awt.event.AWTEventListener() {
					public void eventDispatched(AWTEvent event) {
						if (event.getClass() == KeyEvent.class) {
							KeyEvent kE = ((KeyEvent) event);
							// 处理按键事件 Ctrl+Enter
							if ((kE.getKeyCode() == KeyEvent.VK_ENTER)
									) {

//								window.refreshAction();
								System.out.println("enter");
							} 
						}
					}
			}, java.awt.AWTEvent.KEY_EVENT_MASK);
		

 

 为什么会执行两次呢?因为按键按下事件包含两个事件:key down,key press

如何只触发一次呢?

增加如下代码:

&&( kE.getID() == KeyEvent.KEY_PRESSED)

 

完整代码如下:

Toolkit toolkit = Toolkit.getDefaultToolkit();
		// 注册应用程序全局键盘事件, 所有的键盘事件都会被此事件监听器处理.
		toolkit.addAWTEventListener(
				new java.awt.event.AWTEventListener() {
					public void eventDispatched(AWTEvent event) {
						if (event.getClass() == KeyEvent.class) {
							KeyEvent kE = ((KeyEvent) event);
							// 处理按键事件 Ctrl+Enter
							if ((kE.getKeyCode() == KeyEvent.VK_ENTER)&&( kE.getID() == KeyEvent.KEY_PRESSED)
									) {

//								window.refreshAction();
								System.out.println("enter");
							} 
						}
					}
			}, java.awt.AWTEvent.KEY_EVENT_MASK);
		

 

 

 

 

  • 大小: 70.8 KB
  • 大小: 23.2 KB
1
0
分享到:
评论
7 楼 hw1287789687 2014-09-30  
源代码 下载地址:
http://pan.baidu.com/s/1ntuntHZ
6 楼 hw1287789687 2014-09-30  
jackyx 写道
求源码33

源代码 下载地址:
http://pan.baidu.com/s/1ntuntHZ
5 楼 jackyx 2014-09-28  
求源码33
4 楼 hw1287789687 2014-08-26  
ahack 写道
我去。。。这界面和美无缘了。

哈哈 ,界面的事以后再说,咱们先实现功能要紧
3 楼 ahack 2014-08-20  
我去。。。这界面和美无缘了。
2 楼 yjheeq 2014-08-20  
freezingsky 写道
不得不承认,兄弟你的审美观不是一般的好!!!

哈哈
1 楼 freezingsky 2014-08-19  
不得不承认,兄弟你的审美观不是一般的好!!!

相关推荐

    使用JavaGUI 编写的贪吃蛇小游戏源码(运用了Swing、监听器、定时器等一些知识)

    通过上、下、左、右按键来控制小蛇的移动方向 食物会在容器里随机生成一个位置 当小蛇吞食掉地图上的食物时下一个食物才会在容器里生成 添加了积分玩法 如果有想法可以自行添加玩法以及功能,或者私信我提出...

    Java-打飞机程序设计及论文

    接下来,我们添加了一个键盘事件监听器,该监听器将捕捉玩家按下的键盘按键。当左箭头键被按下时,我们将飞机的x坐标减少10,这样飞机向左移动。当右箭头键被按下时,我们将飞机的x坐标增加10,使飞机向右移动。 ...

    java语言与面向对象程序设计形考4-0001.docx

    当鼠标按键被释放时,会调用以下哪个事件处理器方法? A、mouseReleased() B、mouseUP() C、mouseOff() D、mouseLetGo() java语言与面向对象程序设计形考4-0001全文共12页,当前为第5页。 java语言与面向对象程序设计...

    java范例开发大全源代码

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12 ...

    贪吃蛇java课程设计--贪吃蛇程序设计.doc

    " "使贪吃蛇运动起来 " "通过函数的调用,使贪吃蛇运动起来,用按键来调节贪吃蛇的运动方向,运动的速" "度。 " "定义各功能键的作用 " "(1) PageUp使贪吃蛇加速,减速。并确定其按键位置; " "(2) PageDown使...

    java范例开发大全

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    java经典面试2010集锦100题(不看你后悔)

    下面对程序的横线处填写不同语句的分析正确的是:(选择一项) A) 填充 break 使程序能够有退出循环的可能性。 B) 填充 continue 将使程序成为死循环,永远无法退出循环。 C) 填充 continue 使程序能够有退出循环的...

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    java范例开发大全(pdf&源码)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    Java范例开发大全(全书源程序)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑...

    新版Android开发教程.rar

    � Android 更像一款桌面环境为 Java 的 Linux 操作系统。有助于 Google 实现其 " 随时随地为每个人提供信 息 " 的企业战略。 HTC HTC HTC HTC Dream/G1 Dream/G1 Dream/G1 Dream/G1 具体配置 硬件 3.17 英寸 HVGA ...

Global site tag (gtag.js) - Google Analytics