`

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  
不得不承认,兄弟你的审美观不是一般的好!!!

相关推荐

    java swing漂亮界面 超酷 javaswing教程

    在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...

    java swing模拟键盘

    Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。在Java Swing中模拟键盘的功能,主要是为了在没有物理键盘的设备上,如触摸屏设备,提供输入文本的方式。例如...

    java Swing 气泡浮动提示窗口代码

    Java Swing 是Java GUI编程库的一部分,它提供了丰富的组件和功能来创建桌面应用程序。在Swing中,有时我们需要为用户提供一种轻量级的提示机制,比如气泡浮动提示窗口,这通常用于显示临时信息或者提示。在给定的...

    迷宫探险游戏(java swing)

    《迷宫探险游戏(Java Swing)》是一款基于Java Swing开发的桌面应用程序,它提供了一个交互式的迷宫环境,用户可以通过控制角色在迷宫中寻找出路。这篇文章将深入探讨这款游戏中涉及的主要Java Swing技术和编程概念...

    java swing 飞机大战

    例如,玩家的移动和射击操作会被注册到键盘事件监听器中,当特定的键盘按键被按下时,对应的事件方法会被调用,执行相应的游戏逻辑。这展示了Swing如何将用户交互与业务逻辑相连接。 在游戏开发中,绘图是一个重要...

    java swing 事件处理小项目(推箱子)

    你需要为JFrame或JPanel等组件添加KeyListener,这样当玩家按下按键时,对应的键盘事件会被捕获并处理。事件处理函数会更新箱子的位置,确保游戏逻辑正确执行。 接下来,我们讨论源码和工具。在开发Java Swing应用...

    基于JAVASwing的贪食蛇小游戏 键盘事件监听 多线程 文件IO 自取

    这些方法会在用户按下、释放或敲击键盘时被调用,从而使蛇根据玩家的输入改变方向。 多线程是实现游戏动态性的基础。在贪食蛇游戏中,你需要至少两个线程:一个用于游戏逻辑(包括蛇的移动、食物生成和碰撞检测),...

    JavaSwing贪吃蛇小游戏

    Java Swing贪吃蛇小游戏是一个利用Java的Swing库开发的经典娱乐项目,旨在帮助开发者加深对Swing组件和事件处理机制的理解。Swing是Java Standard Edition (J2SE)的一部分,提供了一组轻量级的GUI组件,使得在Java中...

    java Swing计算器

    Java Swing计算器是一款基于Java Swing库开发的桌面应用程序,它提供了丰富的计算功能,包括基础运算以及高级数学函数。这款计算器不仅支持基本的加减乘除,还具备了平方、求余数、三角函数(如正弦sin、余弦cos、正...

    Java Swing实现俄罗斯方块游戏.zip

    定时器会在指定间隔调用一个回调方法,从而更新游戏状态并重绘屏幕,模拟方块的下落过程。 在游戏得分和等级系统方面,每当消除一行,得分就会增加,并根据消除的行数乘以一定的系数。达到一定的分数后,游戏难度...

    Java Swing 推箱子 小游戏

    例如,`keyPressed()` 方法会在用户按下键时被调用,我们在这里根据按键码判断用户按下的键并执行相应的游戏逻辑,如改变玩家的移动方向。 在"推箱子"游戏中,我们需要维护一个二维数组来表示游戏地图,数组的每个...

    java计算器 Java计算器 swing组件

    Java Swing 是Java GUI(图形用户界面)库的一部分,主要用于创建桌面应用程序。在这个特定的项目中,"Java计算器 Java计算器 swing组件"是一个使用Swing构建的简单但功能齐全的计算器应用。Swing提供了一系列的组件...

    一个小小的贪吃蛇游戏,基于Java Swing .zip

    本文将深入探讨一个使用Java Swing构建的“贪吃蛇”游戏,这不仅适用于毕业设计或课程设计,也是提升Java后端开发能力的绝佳练习。 首先,我们要理解Java Swing是什么。Java Swing是Java Foundation Classes(JFC)...

    java swing 计算器

    本项目"java swing 计算器"是一个基于Swing实现的计算器程序,它具备基本的计算功能,并且支持加括号的表达式以及连续输入,能够在用户完成输入后一次性给出计算结果。 首先,Swing组件是Java中的轻量级组件,与AWT...

    Java项目:贪吃蛇游戏(java+swing)

    在Java编程领域,Swing是一个用于构建图形用户界面(GUI)的库,它提供了丰富的组件和工具,使得开发者可以创建出美观且功能强大的桌面应用。本项目“贪吃蛇游戏”正是利用Java Swing库实现的一个经典小游戏。贪吃蛇...

    swing计算器,swing计算器 swing计算器

    Swing计算器是一款基于Java Swing库开发的简单计算工具。Swing是Java的一种图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,主要用于构建桌面应用程序。本项目的核心在于利用Swing组件来...

    java awt swing 实现计算器 代码

    在Java编程语言中,AWT(Abstract Window Toolkit)和Swing是两个用于创建图形用户界面(GUI)的库。这两个库都是Java Foundation Classes (JFC) 的一部分,提供了丰富的组件和功能来帮助开发者构建桌面应用。在这个...

    2048小游戏,Java,Swing.zip

    在2048游戏中,我们需要监听键盘事件,根据用户按下上、下、左、右键来执行对应的操作。同时,也可以添加一个“重置”按钮,监听其点击事件,调用重置游戏的方法。 六、游戏状态管理 在游戏过程中,我们需要记录...

    Java简单的游戏人物移动

    "Java简单的游戏人物移动"这个项目是一个基础的Swing应用,它展示了如何实现一个简单的小游戏,让游戏人物自动移动。尽管它可能没有包含键盘监听事件来控制人物移动,但是通过预设的逻辑,人物会自动进行移动,这为...

    Java swing实现支持录音等功能的钢琴程序

    为了响应用户的点击事件,我们需要为每个按键添加`ActionListener`,这样当用户按下键盘时,相应的音乐声音就能播放出来。此外,可能还会使用`JTable`或`JScrollPane`来展示音符或者设置。 在音频处理方面,Java ...

Global site tag (gtag.js) - Google Analytics