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()方法中才会有效。
分享到:
相关推荐
本项目是一套基于Java Swing实现的程序员计算器,主要针对计算机相关专业的正在学习java的学生与需要项目实战练习的Java学习者。 包含:项目源码、jar包、exe可执行文件等。 项目都经过严格调试,确保可以运行! 该...
该计算器程序以java语言为基础,外观设计以Windows 10系统计算器为模板,在还原磨砂透明的UI的同时,对键盘部分的设计参考了腹灵F11键盘的配色。本计算器具备计算的基本功能,如:加、减、乘、除的四则运算;具备...
KeyAdapter 是 Java 提供的一个抽象类,实现了 KeyListener 接口。通过继承 KeyAdapter 类,你可以选择性地重写键盘事件方法,以便处理感兴趣的按键操作。
主要介绍了Java Swing实现简单的体重指数(BMI)计算器功能,涉及Java Swing窗口组件布局、响应及数值运算相关操作技巧,需要的朋友可以参考下
(2)游戏难度的调整模块:玩家玩的时间越长游戏的难度越高,敌方飞机的数量越多、敌方飞机出现的频率越高,玩家保证飞机的存活的难度越高,操作难度相应也高。 (3)游戏界面绘画功能模块:左上角会显示玩家飞机...
事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏 - 多行文本的显示- 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例- 管理型应用界面的框架- 向导型应用界面的框架- 文档...
其中也使用了之前自己写的基于Java swing小游戏引擎gametool,封装了鼠标键盘以及时间监听器的操作,提供了暂停功能,可以帮助我轻松完成小游戏构建,并且能够控制资源的回收,保证游戏运行过程中不会产生过多冗余...
FEST-Swing是一个用于Swing GUI应用程序功能测试的java开源类库。支持模拟用户交互( 鼠标操作和键盘输入)。支持JDK中的所有Swing组件。提供简洁、强大的API来创建和维护GUI功能测试。
不过想要让Java、AWT和Swing达到最佳性能并不容易(也不方便),特别是在模拟交互式Web站点或像Windows XP和Mac OS X这样的操作系统外观时更是如此。\r\n 本书能帮助JAVA开发人员跳过Swing的基础节直接让桌面应用...
该软件是用Java编写的,因此可以在安装了jre的Windows,Linux和MacOS上运行(支持Java 7和更高版本)。 您可以使用CXTouch进行游戏,观看电影,浏览应用程序,在移动设备上工作以及设备支持的所有操作,但是比在...
使用 Java Swing 或 JavaFX 构建图形界面,包括绘图区域、工具栏、菜单栏等组件。 设计简洁直观的用户界面,包括各种绘图工具的按钮、颜色选择器、线宽调节器等。 图形绘制算法: 实现基本的图形绘制算法,如直线...
1. 学习Java GUI编程,了解如何使用Java Swing库创建用户界面。 2. 掌握Java事件处理机制,如按钮点击事件和键盘事件。 3. 练习Java数据结构,如数组和链表,以及它们的应用。 其他说明: 本教程以实际操作为主,...
游戏操作设计:实现玩家通过键盘或鼠标控制角色移动、射击等操作。 碰撞检测设计:设计游戏碰撞检测模块,检测游戏角色之间的碰撞,包括玩家子弹和敌人、玩家飞机和敌人飞机等。 游戏分数设计:实现分数系统,记录...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
在获取外界输入这一过程中,java的swing包提供了非常好的接口来表现这一过程,也就是java控件的监听事件,能够处理点击,聚焦等等来自于鼠标键盘的事件。这里我们将各个数字、符号、游戏操作都设计为了按钮(JButton...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...