Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140768
  • 博文数量: 171
  • 博客积分: 2914
  • 博客等级: 少校
  • 技术积分: 2045
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-14 17:30
文章分类

全部博文(171)

文章存档

2011年(41)

2010年(130)

我的朋友
最近访客

分类: 项目管理

2010-04-21 18:32:24

Java中的鼠标和键盘事件

  1、使用MouseListener借口处理鼠标事件

  鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出

  鼠标事件类型是MouseEvent,主要方法有:

  getX(),getY() 获取鼠标位置

  getModifiers() 获取鼠标左键或者右键

  getClickCount() 获取鼠标被点击的次数

  getSource() 获取鼠标发生的事件源

  事件源获得监视器的方法是addMouseListener(),移去监视器的方法是removeMouseListener()

  处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法

  mousePressed(MouseEvent) 负责处理鼠标按下事件

  mouseReleased(MouseEvent) 负责处理鼠标释放事件

  mouseEntered(MouseEvent) 负责处理鼠标进入容器事件

  mouseExited(MouseEvent) 负责处理鼠标离开事件

  mouseClicked(MouseEvent) 负责处理点击事件

  2、使用MouseMotionListener接口处理鼠标事件

  事件源发生的鼠标事件有2种:拖动鼠标和鼠标移动

  鼠标事件的类型是MouseEvent

  事件源获得监视器的方法是addMouseMotionListener()

  处理事件源发生的事件的接口是MouseMotionListener 接口中有如下的方法

  mouseDragged() 负责处理鼠标拖动事件

  mouseMoved() 负责处理鼠标移动事件

  3、控制鼠标的指针形状

  setCursor(Cursor.getPreddfinedCursor(Cursor.鼠标形状定义)) 鼠标形状定义见(书 P 210)

  4、键盘事件

  键盘事件源使用addKeyListener 方法获得监视器

  键盘事件的接口是KeyListener 接口中有3个方法

  public void keyPressed(KeyEvent e) 按下键盘按键

  public void keyReleased(KeyEvent e) 释放键盘按键

  public void keyTypde(KeyEvent e) 按下又释放键盘按键

  package mouseenvent;

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class Mouse extends JFrame implements MouseListener{

  JPanel jp = new JPanel();

  JLabel statusbar = new JLabel();

  static final long serialVersionUID=0;

  public Mouse(){

  setTitle("Mouse Event");

  getContentPane().add(jp,BorderLayout.CENTER);

  getContentPane().add(statusbar, BorderLayout.SOUTH);

  jp.addMouseListener(this);

  }

  public static void main(String[] args){

  Mouse frame = new Mouse();

  frame.setSize(500,500);

  frame.setVisible(true);

  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  public void mousePressed(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "鼠标在坐标"+"("+x+","+y+")"+"处按下";

  statusbar.setText(s);

  }

  public void mouseReleased(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "鼠标在坐标"+"("+x+","+y+")"+"处释放";

  statusbar.setText(s);

  }

  public void mouseClicked(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "鼠标在坐标"+"("+x+","+y+")"+"处点击";

  statusbar.setText(s);

  }

  public void mouseEntered(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "鼠标在坐标"+"("+x+","+y+")"+"处进入";

  statusbar.setText(s);

  }

  public void mouseExited(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "鼠标在坐标"+"("+x+","+y+")"+"处离开";

  statusbar.setText(s);

  }

  }

  package mouseenvent;

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class MouseMotion extends JFrame implements MouseMotionListener{

  static final long serialVersionUID=0;

  JLabel bar = new JLabel();

  JTextField text = new JTextField();

  public MouseMotion(){

  setTitle("Mouse Event");

  getContentPane().add(text,BorderLayout.NORTH);

  getContentPane().add(bar, BorderLayout.SOUTH);

  addMouseMotionListener(this);

  }

  public void mousePressed(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "x = "+x+"y = "+y;

  bar.setText(s);

  text.setText(s);

  }

  public void mouseDragged(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "x = "+x+" y = "+y;

  bar.setText(s);

  text.setText(s);

  }

  public void mouseMoved(MouseEvent e){

  int x = e.getX();

  int y = e.getY();

  String s = "x = "+x+" y = "+y;

  bar.setText(s);

  text.setText(s);

  }

  public static void main(String args[])throws Exception{

  MouseMotion mouse = new MouseMotion();

  mouse.setSize(500,500);

  mouse.setVisible(true);

  mouse.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  }

  package mouseenvent;

  import java.awt.event.*;

  import javax.swing.*;

  import java.awt.*;

  public class Key extends JFrame implements KeyListener{

  JLabel bar ;

  public Key(){

  bar = new JLabel();

  getContentPane().add(bar,BorderLayout.CENTER);

  addKeyListener(this);

  }

  public void keyPressed(KeyEvent e){

  char c = e.getKeyChar();

  String s = c+"" ;

  bar.setText(s);

  }

  public void keyReleased(KeyEvent e){

  char c = e.getKeyChar();

  }

  public void keyTyped(KeyEvent e){

  char c = e.getKeyChar();

  }

  public static void main(String args[])throws Exception{

  Key key = new Key();

  key.setSize(500,500);

  key.setVisible(true);

  key.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

  }

  }


本文来自“北大青鸟济南新东方(山东大学)校区”网站  
原文链接:

 
阅读(487) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~