键盘监听器与鼠标监听器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

键盘监听器

键盘监听器KeyListener用来监听键盘事件。键盘事件有三种:KEY_PRESSED键按下了,KE Y_RELEASED键松开了,KEY_TYPED键按过了。每个键都有一个键码,普通键的键码就是ASC II码。键码可通过int getKeyCode()方法获得。Java设置了一种“虚拟键码”(Virtual K ey Code),用“VK_”作为前缀,例如VK_G。下面是某些特殊键的虚拟键码。

VK_LEFT/VK_RIGHT 左右方向键VK_CONTROL Ctrl键

VK_KP_UP 小键盘向上VK_ATL Alt键

VK_PAUSE 暂停键VK_SHIFT Shift键

VK_NUMBER0 小键盘数字0 VK_F1 功能键F1

VK_0 数字键0 VK_B 字母键B

虚拟键码对应的是键位,不区分大小写。要想知道大小写还必须查看修饰键(modifier key)。这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONT ROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于“同时按下”状态。

监听器KeyListener有三个方法keyPressed(KeyEvent evt),keyReleased(KeyEvent evt), keyTyped(KeyEvent evt),分别用于相应事件发生后的处理。下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息。

除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKey Text(code)方法得到输入的字符串。用isShiftDown()判断shift键是否被按下等。当按下Control键时getKeyText返回的是“ctrl",Alt和Shift也类似。

下面的例子演示得到键码和字符的方法,在命令行上显示结果。

例15 本例程演示键盘监听器后键码的用法。

///

// KeyEvt.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class MyKeyListener implements KeyListener{

publicvoid keyPressed(KeyEvent evt) {

System.out.println("\n按键被按下");

showKeyEventMsg(evt);

}

publicvoid keyReleased(KeyEvent evt){ }

publicvoid keyTyped(KeyEvent evt) { }

privatevoid showKeyEventMsg(KeyEvent evt){//显示按键事件信息//得到按键对应的整型数

int code = evt.getKeyCode();

//返回按键事件所代表的字符

char c = evt.getKeyChar();

//得到代表按键的字符串

String szText = evt.getKeyText(code);

if (code != KeyEvent.VK_UNDEFINED)

System.out.println("\n按键对应的整型数:"+code);

if (c != KeyEvent.CHAR_UNDEFINED)

System.out.println("\n与按键相联系的字符:"+c);

if (evt.isShiftDown())

System.out.println("\n按键Shift被按下");

System.out.println("\n按键本身的字符串:"+szText);

}

}

class ButtonPanel extends JPanel{

public ButtonPanel() {

//新建一个文本域组件

tf = new JTextField(20);

add(tf);

//指定用来处理该按钮事件的监听器对象为JPanel本身myListener = new MyKeyListener();

tf.addKeyListener(myListener);

}

private JTextField tf;

private MyKeyListener myListener;

}

class ButtonFrame extends JFrame{

public ButtonFrame() {

setTitle("键盘事件示例程序");

setSize(300, 200);

setLocation(100,100);

addWindowListener(new WindowAdapter() {

publicvoid windowClosing(WindowEvent e)

{ System.exit(0);

}

});

Container ctPane = getContentPane();

ctPane.add(new ButtonPanel());

}

}

publicclass KeyEvt{

publicstaticvoid main(String[] args) {

JFrame frame = new ButtonFrame();

frame.setVisible(true);

}

}

///

简要说明

1. 程序建立了自己的键盘监听器MyKeyListener,定义了一个新方法showKeyEventMs

g用来在标准输出设备上显示有关的键盘信息。

2. 在面版ButtonPanel上建立文本框并加键盘监听器。把面版ButtonPanel放到窗口

ButtonFrame中。

鼠标监听器

鼠标监听器mouseListener监听鼠标事件MouseEvent。相应事件和处理方法如下表:

鼠标事件处理方法

MOUSE_CLICKED MouseClicked (MouseEvent) 鼠标点击(单或双)

MOUSE_PRESSED MousePressed (MouseEvent) 鼠标按下

MOUSE_RELEASED MouseReleased(MouseEvent) 鼠标松开

MOUSE_ENTERED MouseEntered (MouseEvent) 鼠标进入(某组件区域)

MOUSE_EXITED MouseExited (MouseEvent) 鼠标离开(某组件区域)

鼠标事件MouseEvent常用方法

int getClickCount() 得到点击次数1 OR 2;

相关文档
最新文档