《2022年java键盘鼠标监听 .pdf》由会员分享,可在线阅读,更多相关《2022年java键盘鼠标监听 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、键盘监听器和鼠标监听器键盘监听器键盘监听器 KeyListener用来监听键盘事件。键盘事件有三种:KEY_PRESSED键按下了,KEY_RELEASED键松开了,KEY_TYPED 键按过了。每个键都有一个键码,普通键的键码就是ASCII 码。键码可通过 int getKeyCode()方法获得。Java 设置了一种“虚拟键码”(Virtual Key Code),用“VK_”作为前缀,例如VK_G。下面是某些特殊键的虚拟键码。键码含义键码含义VK_LEFT/VK_RIGHT 左右方向键VK_CONTROL Ctrl键VK_KP_UP 小键盘向上VK_ATL Alt 键VK_PAUSE 暂
2、停键VK_SHIFT Shift键VK_NUMBER0 小键盘数字 0 VK_F1 功能键 F1 VK_0 数字键 0 VK_B 字母键 B 虚拟键码对应的是键位,不区分大小写。要想知道大小写还必须查看修饰键(modifier key)。这由输入事件 InputEvent的 getModifere()方法得到,把返回值与常量 SHIFT_MASK,CONTROL_MASK,ALT_MASK比较,用以判定哪个修饰键处于“同时按下”状态。监听器 KeyListener有三个方法 keyPressed(KeyEvent evt),keyReleased(KeyEvent evt),keyTyped(
3、KeyEvent evt),分别用于相应事件发生后的处理。下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息。除了 getKeyCode()方法得到键码外,还可用 getKeyChar()方法得到输入的字符,用 getKeyText(code)方法得到输入的字符串。用 isShiftDown()判断 shift键是否被按下等。当按下Control键时 getKeyText 返回的是“ctrl,Alt 和 Shift也类似。下面的例子演示得到键码和字符的方法,在命令行上显示结果。例 15 本例程演示键盘监听器后键码的用法。名师资料总结-精品资料欢迎下载-名师精心
4、整理-第 1 页,共 5 页 -/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
5、 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 (
6、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;priv
7、ate MyKeyListener myListener;class ButtonFrame extends JFrame 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -public ButtonFrame()setTitle(键盘事件示例程序 );setSize(300,200);setLocation(100,100);addWindowListener(new WindowAdapter()publicvoid windowClosing(WindowEvent e)System.exit(0););Container ctPane=getContentPane
8、();ctPane.add(new ButtonPanel();publicclass KeyEvt publicstaticvoid main(String args)JFrame frame=new ButtonFrame();frame.setVisible(true);/简要说明1.程序建立了自己的键盘监听器MyKeyListener,定义了一个新方法showKeyEventMsg 用来在标准输出设备上显示有关的键盘信息。2.在面版 ButtonPanel 上建立文本框并加键盘监听器。把面版 ButtonPanel放到窗口 ButtonFrame 中。鼠标监听器鼠标监听器 mouseL
9、istener 监听鼠标事件 MouseEvent。相应事件和处理方法如下表:鼠标事件处理方法MOUSE_CLICKED MouseClicked(MouseEvent)鼠标点击(单或双)MOUSE_PRESSED MousePressed(MouseEvent)鼠标按下MOUSE_RELEASED MouseReleased(MouseEvent)鼠标松开MOUSE_ENTERED MouseEntered(MouseEvent)鼠标进入(某组件区域)MOUSE_EXITED MouseExited (MouseEvent)鼠标离开(某组件区域)名师资料总结-精品资料欢迎下载-名师精心整理-
10、第 3 页,共 5 页 -鼠标事件 MouseEvent常用方法int getClickCount()得到点击次数 1 OR 2;int getX(),int getY()得到鼠标的(象素)位置。对于鼠标的移动和拖放,另外用鼠标运动监听器mouseMotionListener。因为许多程序不需要监听鼠标运动,把两者分开可简化程序。有两个方法处理鼠标运动事件:MOUSE_MOVED MouseMoved (MouseEvent)鼠标在移动MOUSE_DRAGGED MouseDragged(MouseEvent)鼠标被拖动下面的例程演示简单的鼠标监听,并在屏幕上输出鼠标操作的信息。例 16 本例
11、程演示鼠标监听器,鼠标点击和运动的监听。/MouseEvt.java import java.awt.*;import java.awt.event.*;import javax.swing.*;class MyPanel extends JPanel implements MouseMotionListener public MyPanel()addMouseListener(new MouseAdapter()publicvoid mouseClicked(MouseEvent evt)if (evt.getClickCount()=2)System.out.println(n 双击鼠标
12、);int x=evt.getX();int y=evt.getY();System.out.println(点击鼠标的位置 nX:+x+ty:+y););addMouseMotionListener(this);publicvoid mouseMoved(MouseEvent evt)System.out.println(n 鼠标正在移动);publicvoid mouseDragged(MouseEvent evt)System.out.println(n 鼠标正在拖动);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -class MyFrame extends J
13、Frame public MyFrame()setTitle(鼠标事件示例程序 );setSize(300,200);addWindowListener(new WindowAdapter()publicvoid windowClosing(WindowEvent e)System.exit(0););Container contentPane=getContentPane();contentPane.add(new MyPanel();publicclass MouseEvt publicstaticvoid main(String args)JFrame frame=new MyFrame();frame.setVisible(true);/简要说明在 MyPanel的构建器中添加了鼠标适配器来监听鼠标点击数和位置。也添加了运动监听器来处理移动和拖放操作。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -