`

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
分享到:
评论

相关推荐

    学生选课和成绩管理系统 基于JAVASWing 键盘鼠标事件监听 JDBC 文件IO流

    在本系统中,Swing被用来创建用户友好的交互界面,包括菜单栏、按钮、文本框等元素,通过键盘和鼠标事件监听,实现了用户操作的实时响应,例如点击“选课”按钮后触发选课操作。 其次,数据库管理是系统的核心部分...

    JAVA swing中文离线API文档

    此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和操作数据表格或列表。 事件处理是Swing应用中的关键部分。通过实现监听器接口,如`ActionListener`,开发者可以响应用户的点击、键盘输入等事件。...

    java swing实现pdf阅读器

    在Java Swing中实现PDF阅读器是一项技术挑战,涉及到对PDF文件格式的理解、IO操作、Swing组件的使用以及可能的第三方库集成。 PDF(Portable Document Format)是一种广泛使用的文件格式,用于存储文档,包括文本...

    贪吃蛇java swing

    贪吃蛇是一款经典的休闲游戏,其Java Swing版本的实现展示了如何使用Java的图形用户界面库来构建一个桌面应用。在本项目中,我们将探讨以下几个关键知识点: 1. **Java Swing**: Java Swing是Java Foundation ...

    java swing界面设计

    - "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...

    Java swing编写的计算器界面.zip

    Swing组件被称为轻量级组件,因为它们不直接与操作系统交互,而是由Java运行时环境管理,这使得Swing应用具有更好的跨平台兼容性。 在创建一个计算器界面时,主要涉及以下Swing组件: 1. JFrame:这是所有Swing...

    javaswing详解

    1. 轻量级与重量级组件:Swing组件是轻量级的,基于Java的AWT(Abstract Window Toolkit)组件,比AWT更加高效,因为它们不依赖于操作系统底层的图形系统。 2. MVC设计模式:Swing组件遵循模型-视图-控制器(MVC)...

    java swing写的推箱子游戏

    对于Java Swing的学习者来说,分析这个游戏的源代码能帮助他们了解如何使用Swing组件构建交互式应用,以及如何处理用户的输入事件,如键盘移动和点击按钮。 推箱子游戏的实现会涉及到以下知识点: 1. **Swing组件*...

    java swing围棋游戏

    6. **用户交互**:Swing提供了丰富的API来处理用户输入,如鼠标点击和键盘操作。开发者可能还需要处理悔棋、重新开始、保存和加载游戏进度等功能。 7. **图形绘制**:Swing允许自定义组件进行图形绘制,如绘制棋子...

    JavaSwing实现飞机大战

    在JavaSwing中,我们可以使用组件(如JFrame、JButton、JLabel等)来搭建游戏界面,通过事件监听来处理用户的输入,比如键盘操作和鼠标点击。飞机大战游戏通常包括飞机的移动、射击、敌机的生成与碰撞检测等核心功能...

    java swing 工具箱

    Swing使用事件监听器(EventListener)模式来响应用户的操作,如按钮点击、键盘输入等。例如,你可以添加ActionListener到JButton以响应点击事件。 Swing还提供了模型-视图-控制器(MVC)设计模式,这使得代码结构...

    JAVA Swing实现记事本

    在这个项目中,“JAVA Swing实现记事本”是利用Swing库来创建一个类似传统文本编辑器的应用,允许用户进行文字编辑、保存、复制、粘贴等操作。 首先,Swing 提供了 `JFrame` 类作为窗口的基础,它代表了应用程序的...

    java swing 鼠标自动移动

    与AWT(Abstract Window Toolkit)相比,Swing组件是轻量级的,基于Java而不是操作系统底层,因此具有更好的跨平台兼容性。 2. **鼠标事件处理**: 在Swing中,我们可以使用`MouseListener`或`MouseMotionListener`...

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

    Java的`File`类和`FileInputStream`/`FileOutputStream`可以帮助你完成文件的读写操作。同时,使用序列化技术,你甚至可以将整个游戏状态保存到文件,允许玩家暂停并恢复游戏。 项目源代码可能包含以下几个主要部分...

    java_swingProgram.rar_JavaSwing_java swing_swing

    在Java Swing中,所有的组件都被称为轻量级组件,因为它们完全由Java代码实现,不依赖于操作系统底层的图形库,这使得Swing应用具有更好的跨平台兼容性。 `java_swingProgram.chm` 文件可能是一个帮助文档,通常...

    迷宫探险游戏(java swing)

    3. **事件监听**:为了响应用户的输入,如键盘操作,需要添加事件监听器。Java Swing提供ActionListener和KeyAdapter等接口,可以注册到按钮和窗口上,以处理用户的点击和按键行为。 4. **布局管理**:Swing提供了...

    java swing 游戏 星际争霸 java swing 游戏 星际争霸

    在游戏交互上,Swing支持鼠标和键盘事件,使得玩家可以通过这些输入设备进行操作。同时,为了实现多人在线对战,还需要了解网络编程,使用Socket或者更高层次的API如Java RMI(Remote Method Invocation)来实现...

    java swing

    相比于AWT(Abstract Window Toolkit),Swing具有更多的自定义选项,并且可以在不同的操作系统上保持一致的外观和行为。这使得Swing成为构建跨平台Java应用程序的理想选择。 #### 三、Swing的角色 Swing的主要...

    java swing基础教程

    此外,Swing支持Nimbus、Metal、Windows等不同的Look and Feel,使程序能适应不同操作系统平台的风格。 7. **模型-视图-控制器(MVC)设计模式** Swing组件遵循MVC模式,每个组件都有一个模型(Model)来存储数据...

    JAVA Swing实例讲解.zip

    通过这些实例,你可以深入学习如何使用Swing来构建复杂的用户界面,并且了解到如何使界面看起来更美观、更符合用户的操作习惯。 首先,Swing中的组件类主要包括JFrame、JPanel、JButton、JLabel、JTextArea、...

Global site tag (gtag.js) - Google Analytics