歡迎您光臨本站 註冊首頁

Java獲取窗口滑鼠坐標以及鍵盤按鍵

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

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

  }

  }


[火星人 ] Java獲取窗口滑鼠坐標以及鍵盤按鍵已經有4026次圍觀

http://coctec.com/docs/java/show-post-60655.html