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()方法中才会有效。
分享到:
相关推荐
在本系统中,Swing被用来创建用户友好的交互界面,包括菜单栏、按钮、文本框等元素,通过键盘和鼠标事件监听,实现了用户操作的实时响应,例如点击“选课”按钮后触发选课操作。 其次,数据库管理是系统的核心部分...
此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和操作数据表格或列表。 事件处理是Swing应用中的关键部分。通过实现监听器接口,如`ActionListener`,开发者可以响应用户的点击、键盘输入等事件。...
在Java Swing中实现PDF阅读器是一项技术挑战,涉及到对PDF文件格式的理解、IO操作、Swing组件的使用以及可能的第三方库集成。 PDF(Portable Document Format)是一种广泛使用的文件格式,用于存储文档,包括文本...
贪吃蛇是一款经典的休闲游戏,其Java Swing版本的实现展示了如何使用Java的图形用户界面库来构建一个桌面应用。在本项目中,我们将探讨以下几个关键知识点: 1. **Java Swing**: Java Swing是Java Foundation ...
- "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...
Swing组件被称为轻量级组件,因为它们不直接与操作系统交互,而是由Java运行时环境管理,这使得Swing应用具有更好的跨平台兼容性。 在创建一个计算器界面时,主要涉及以下Swing组件: 1. JFrame:这是所有Swing...
1. 轻量级与重量级组件:Swing组件是轻量级的,基于Java的AWT(Abstract Window Toolkit)组件,比AWT更加高效,因为它们不依赖于操作系统底层的图形系统。 2. MVC设计模式:Swing组件遵循模型-视图-控制器(MVC)...
对于Java Swing的学习者来说,分析这个游戏的源代码能帮助他们了解如何使用Swing组件构建交互式应用,以及如何处理用户的输入事件,如键盘移动和点击按钮。 推箱子游戏的实现会涉及到以下知识点: 1. **Swing组件*...
6. **用户交互**:Swing提供了丰富的API来处理用户输入,如鼠标点击和键盘操作。开发者可能还需要处理悔棋、重新开始、保存和加载游戏进度等功能。 7. **图形绘制**:Swing允许自定义组件进行图形绘制,如绘制棋子...
在JavaSwing中,我们可以使用组件(如JFrame、JButton、JLabel等)来搭建游戏界面,通过事件监听来处理用户的输入,比如键盘操作和鼠标点击。飞机大战游戏通常包括飞机的移动、射击、敌机的生成与碰撞检测等核心功能...
Swing使用事件监听器(EventListener)模式来响应用户的操作,如按钮点击、键盘输入等。例如,你可以添加ActionListener到JButton以响应点击事件。 Swing还提供了模型-视图-控制器(MVC)设计模式,这使得代码结构...
在这个项目中,“JAVA Swing实现记事本”是利用Swing库来创建一个类似传统文本编辑器的应用,允许用户进行文字编辑、保存、复制、粘贴等操作。 首先,Swing 提供了 `JFrame` 类作为窗口的基础,它代表了应用程序的...
与AWT(Abstract Window Toolkit)相比,Swing组件是轻量级的,基于Java而不是操作系统底层,因此具有更好的跨平台兼容性。 2. **鼠标事件处理**: 在Swing中,我们可以使用`MouseListener`或`MouseMotionListener`...
Java的`File`类和`FileInputStream`/`FileOutputStream`可以帮助你完成文件的读写操作。同时,使用序列化技术,你甚至可以将整个游戏状态保存到文件,允许玩家暂停并恢复游戏。 项目源代码可能包含以下几个主要部分...
在Java Swing中,所有的组件都被称为轻量级组件,因为它们完全由Java代码实现,不依赖于操作系统底层的图形库,这使得Swing应用具有更好的跨平台兼容性。 `java_swingProgram.chm` 文件可能是一个帮助文档,通常...
3. **事件监听**:为了响应用户的输入,如键盘操作,需要添加事件监听器。Java Swing提供ActionListener和KeyAdapter等接口,可以注册到按钮和窗口上,以处理用户的点击和按键行为。 4. **布局管理**:Swing提供了...
在游戏交互上,Swing支持鼠标和键盘事件,使得玩家可以通过这些输入设备进行操作。同时,为了实现多人在线对战,还需要了解网络编程,使用Socket或者更高层次的API如Java RMI(Remote Method Invocation)来实现...
相比于AWT(Abstract Window Toolkit),Swing具有更多的自定义选项,并且可以在不同的操作系统上保持一致的外观和行为。这使得Swing成为构建跨平台Java应用程序的理想选择。 #### 三、Swing的角色 Swing的主要...
此外,Swing支持Nimbus、Metal、Windows等不同的Look and Feel,使程序能适应不同操作系统平台的风格。 7. **模型-视图-控制器(MVC)设计模式** Swing组件遵循MVC模式,每个组件都有一个模型(Model)来存储数据...
通过这些实例,你可以深入学习如何使用Swing来构建复杂的用户界面,并且了解到如何使界面看起来更美观、更符合用户的操作习惯。 首先,Swing中的组件类主要包括JFrame、JPanel、JButton、JLabel、JTextArea、...