`

JavaSwing键盘的操作

阅读更多

JavaSwing键盘的操作

键盘事件处理:

KeyListener keyPressed(KeyEvent e)

keyReleased(KeyEvent e) keyTyped(KeyEvent e)

下面我还是举一个简单的例子,下面的例子是当你在文本框中输入字母o的时候会打开新窗户哦。。

package com;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 * 
 * @author chenhailong
 *
 */
public class KeyDemo extends KeyAdapter implements ActionListener {
	JFrame f = null;
	JLabel label = null;
	JTextField tField = null;
	String keyString = "";

	public KeyDemo() {
		f = new JFrame("KeyEventDemo");
		Container contentPane = f.getContentPane();
		contentPane.setLayout(new GridLayout(3, 1));
		label = new JLabel();
		tField = new JTextField();
		tField.requestFocus();
		tField.addKeyListener(this);
		JButton b = new JButton("清除");
		b.addActionListener(this);
		contentPane.add(label);
		contentPane.add(tField);
		contentPane.add(b);
		f.pack();
		f.setVisible(true);
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}

	public void actionPerformed(ActionEvent e) {
		keyString = "";
		label.setText("");
		tField.setText("");
		tField.requestFocus();
	}

	/* 输入字母"O"之后,会产生新窗口 */
	public void keyTyped(KeyEvent e) {
		char c = e.getKeyChar();
		/* 注意getKeyChar()的用法 */
		if (c == 'o') {
			JFrame newF = new JFrame("新窗口");
			newF.setSize(200, 200);
			newF.setVisible(true);
		}
		keyString = keyString + c;
		label.setText(keyString);
	}

	public static void main(String[] args) {
		new KeyDemo();
	}
}

除了上面所提的getKeyChar()方法外,KeyEvent类还有两个方法也常常被用到,那就是getKeyCode()与 getKeyModifiersText(int modifiers).键盘上每一个按钮都有对应码(Code),可用来查知用户按了什么键, 如[Shift]键code为16。

利用getKeyCode()方法就可以得知这个码,不过读者要注意,这个方法在keyTyped() 上是无法检测出来的,因为keyTyped()只管用户输入的字符,而不会管到键盘的对应码,算是处理比较高层 事件的方法。也就是说keyTyped()方法是keyboad independent,因为不同的键盘可能有不同的对应码(如Windows U.S. keyboard与windows French keyboard就有不同的对应码)。因此你一定要将getKeyCode()方法写在 keyPressed()或keyReleased()方法中才会有效,因为这两个方法是处理比较低层的方法。

另外getKeyModifiersText()方法可返回修饰键的字符串,如返回“Shift”字符串或是“Ctrl+Shift”字符串, 不过你要先传入modifiers参数。你可以直接使用getModifiers()方法来得到modifiers参数。这个方法是定义在 InputEvent类中,而KeyEvent继承它,因此就能直接使用这个方法。同样,你必须将getKeyModifiersText()与 getModifiers()方法放在keyPressed()或keyReleased()方法中才会有效。

0
0
分享到:
评论

相关推荐

    基于Java Swing实现的程序员计算器【源码包+jar包+exe可执行文件】

    本项目是一套基于Java Swing实现的程序员计算器,主要针对计算机相关专业的正在学习java的学生与需要项目实战练习的Java学习者。 包含:项目源码、jar包、exe可执行文件等。 项目都经过严格调试,确保可以运行! 该...

    基于JavaSwing的计算器【100012137】

    该计算器程序以java语言为基础,外观设计以Windows 10系统计算器为模板,在还原磨砂透明的UI的同时,对键盘部分的设计参考了腹灵F11键盘的配色。本计算器具备计算的基本功能,如:加、减、乘、除的四则运算;具备...

    java swing-KeyAdapter 的使用

    KeyAdapter 是 Java 提供的一个抽象类,实现了 KeyListener 接口。通过继承 KeyAdapter 类,你可以选择性地重写键盘事件方法,以便处理感兴趣的按键操作。

    Java Swing实现简单的体重指数(BMI)计算器功能示例

    主要介绍了Java Swing实现简单的体重指数(BMI)计算器功能,涉及Java Swing窗口组件布局、响应及数值运算相关操作技巧,需要的朋友可以参考下

    java swing飞机大战游戏(源码+视频+文档+ppt)_亲测有效

    (2)游戏难度的调整模块:玩家玩的时间越长游戏的难度越高,敌方飞机的数量越多、敌方飞机出现的频率越高,玩家保证飞机的存活的难度越高,操作难度相应也高。 (3)游戏界面绘画功能模块:左上角会显示玩家飞机...

    Java学习指南(Swing高级篇)

    事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏 - 多行文本的显示- 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例- 管理型应用界面的框架- 向导型应用界面的框架- 文档...

    Java飞机大战

    其中也使用了之前自己写的基于Java swing小游戏引擎gametool,封装了鼠标键盘以及时间监听器的操作,提供了暂停功能,可以帮助我轻松完成小游戏构建,并且能够控制资源的回收,保证游戏运行过程中不会产生过多冗余...

    fest-swing-1.2 Java Packets

    FEST-Swing是一个用于Swing GUI应用程序功能测试的java开源类库。支持模拟用户交互( 鼠标操作和键盘输入)。支持JDK中的所有Swing组件。提供简洁、强大的API来创建和维护GUI功能测试。

    Swing Hacks[电子书+书中源码]

    不过想要让Java、AWT和Swing达到最佳性能并不容易(也不方便),特别是在模拟交互式Web站点或像Windows XP和Mac OS X这样的操作系统外观时更是如此。\r\n 本书能帮助JAVA开发人员跳过Swing的基础节直接让桌面应用...

    CXTouch:通过基于PC客户端的Java swing查看和管理Android设备,支持Windows,Linux和MacOS

    该软件是用Java编写的,因此可以在安装了jre的Windows,Linux和MacOS上运行(支持Java 7和更高版本)。 您可以使用CXTouch进行游戏,观看电影,浏览应用程序,在移动设备上工作以及设备支持的所有操作,但是比在...

    JAVA画图形学程序的设计与实现.rar

    使用 Java Swing 或 JavaFX 构建图形界面,包括绘图区域、工具栏、菜单栏等组件。 设计简洁直观的用户界面,包括各种绘图工具的按钮、颜色选择器、线宽调节器等。 图形绘制算法: 实现基本的图形绘制算法,如直线...

    java+毕业设计+扫雷(程序)

    1. 学习Java GUI编程,了解如何使用Java Swing库创建用户界面。 2. 掌握Java事件处理机制,如按钮点击事件和键盘事件。 3. 练习Java数据结构,如数组和链表,以及它们的应用。 其他说明: 本教程以实际操作为主,...

    JAVA打飞机游戏毕业设计

    游戏操作设计:实现玩家通过键盘或鼠标控制角色移动、射击等操作。 碰撞检测设计:设计游戏碰撞检测模块,检测游戏角色之间的碰撞,包括玩家子弹和敌人、玩家飞机和敌人飞机等。 游戏分数设计:实现分数系统,记录...

    java开源包6

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包11

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包9

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包5

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    24点小程序-源码-java

    在获取外界输入这一过程中,java的swing包提供了非常好的接口来表现这一过程,也就是java控件的监听事件,能够处理点击,聚焦等等来自于鼠标键盘的事件。这里我们将各个数字、符号、游戏操作都设计为了按钮(JButton...

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

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

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

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

Global site tag (gtag.js) - Google Analytics