Java如何获取窗口鼠标坐标

原创|其它|编辑:郝浩|2010-01-08 13:24:13.000|阅读 3241 次

概述:本文介绍Java获取窗口鼠标坐标以及键盘按键的方法。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  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);
  }
  }


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP