日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 监听桌面鼠标事件,鼠标事件的监听和使用

發布時間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 监听桌面鼠标事件,鼠标事件的监听和使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鼠標操作是圖形操作系統最常用操作,用戶使用鼠標單擊,雙擊,右擊,拖動等操作實現與軟件的交互。 鼠標事件監聽器 鼠標事件監聽器由MouseListener接口和MouseMotionListener接口定義,分別定義鼠標捕獲不同的鼠標操作方法。 MouseListener監聽器方法說明 mouseClicked(MouseEvent e) 處理鼠標單擊事件方法

mouseEntered(MouseEvent e) 鼠標進入組件區域時執行方法 mouseExited(MouseEvent e) 鼠標離開組件區域執行方法 mousePressed(MouseEvent e) 按下鼠標按鍵時執行方法 mouseRelease(MouseEvent e) 釋放鼠標按鍵時執行方法

MouseListener監聽器的方法,基本滿足大多數程序需求。

MouseMotionListener接口定義兩個有關鼠標移動和拖動事件的處理方法。 MouseMotionListener監聽器方法說明

mouseMoved(MouseEvent e) 處理鼠標移動事件的方法 mouseDragged(MouseEvent e) 處理鼠標拖動事件的方法 鼠標事件處理 兩個鼠標事件監聽器中的方法都定義了MouseEvent類型的形參,MouseEvent類是鼠標事件類,是被監聽器捕獲的用戶操作所生成的事件對象,該實例對象包含了許多鼠標事件發生時的參數信息。例如鼠標的坐標位置,鼠標的按鍵等。

常用方法有: getButton() 返回更改了狀態的鼠標按鍵

getClickCount() 返回與此事件關聯的鼠標單擊次數

getLocationOnScreen() 返回鼠標相對于屏幕的絕對x,y坐標

getPoint() 返回事件相對于源組件的x,y坐標

translatePoint() 通過將事件坐標加上指定x,y偏移量,將事件坐標平移到新位置 以下代碼,演示了兩個接口的作用,通過讀代碼,就會理解到各自方法的作用:

import?javax.swing.*;

import?java.awt.event.*;

public?class?MyMouse?extends?JFrame?{

public?JLabel?jl?=?new?JLabel("鼠標暫無操作");

public?MyMouse()?{

setBounds(100,?100,?350,?80);

getContentPane().add("South",?jl);

addMouseListener(new?MouseListener()?{

public?void?mouseClicked(MouseEvent?arg0)?{

jl.setText("鼠標在界面中單擊了"?+?jl.getText()?+?arg0.getClickCount()

+?"次");

}

public?void?mouseEntered(MouseEvent?arg0)?{

jl.setText("鼠標進入了窗體界面");

}

public?void?mouseExited(MouseEvent?arg0)?{

jl.setText("鼠標離開了窗體界面");

}

public?void?mousePressed(MouseEvent?arg0)?{

jl.setText("鼠標在窗體界面中按下了鍵"?+?arg0.getButton());

}

public?void?mouseReleased(MouseEvent?arg0)?{

jl.setText("鼠標在窗體界面中釋放了鍵"?+?arg0.getButton());

}

});

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public?static?void?main(String[]?args)?{

MyMouse?test?=?new?MyMouse();

test.setVisible(true);

}

}

import javax.swing.*;

import java.awt.event.*;

public class MyMouse extends JFrame {

public JLabel jl = new JLabel("鼠標暫無操作");

public MyMouse() {

setBounds(100, 100, 350, 80);

getContentPane().add("South", jl);

addMouseListener(new MouseListener() {

public void mouseClicked(MouseEvent arg0) {

jl.setText("鼠標在界面中單擊了" + jl.getText() + arg0.getClickCount()

+ "次");

}

public void mouseEntered(MouseEvent arg0) {

jl.setText("鼠標進入了窗體界面");

}

public void mouseExited(MouseEvent arg0) {

jl.setText("鼠標離開了窗體界面");

}

public void mousePressed(MouseEvent arg0) {

jl.setText("鼠標在窗體界面中按下了鍵" + arg0.getButton());

}

public void mouseReleased(MouseEvent arg0) {

jl.setText("鼠標在窗體界面中釋放了鍵" + arg0.getButton());

}

});

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

MyMouse test = new MyMouse();

test.setVisible(true);

}

}

以下代碼,演示了MouseMotionListener類,組件在界面中,可以拖動:

import?javax.swing.*;

import?java.awt.FlowLayout;

import?java.awt.event.*;

public?class?MyMouse?extends?JFrame?{

public?JButton?jb?=?new?JButton("鼠標可拖動按鈕");

public?JTextField?jt?=?new?JTextField();

public?MyMouse()?{

jb.setBounds(100,?100,?330,?175);

jt.setColumns(20);

setBounds(100,?100,?350,?280);

getContentPane().setLayout(new?FlowLayout());

getContentPane().add(jb);

getContentPane().add(jt);

addMouseMotionListener(new?MouseMotionListener()?{

/**

*?處理鼠標拖動事件*?*/

public?void?mouseDragged(MouseEvent?arg0)?{

mouseMoved(arg0);

jb.setLocation(arg0.getPoint());

}

/**

*?處理鼠標移動事件*?*/

public?void?mouseMoved(MouseEvent?arg0)?{

jt.setText(arg0.getPoint().toString());

}

});

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public?static?void?main(String[]?args)?{

MyMouse?test?=?new?MyMouse();

test.setVisible(true);

}

}

import javax.swing.*;

import java.awt.FlowLayout;

import java.awt.event.*;

public class MyMouse extends JFrame {

public JButton jb = new JButton("鼠標可拖動按鈕");

public JTextField jt = new JTextField();

public MyMouse() {

jb.setBounds(100, 100, 330, 175);

jt.setColumns(20);

setBounds(100, 100, 350, 280);

getContentPane().setLayout(new FlowLayout());

getContentPane().add(jb);

getContentPane().add(jt);

addMouseMotionListener(new MouseMotionListener() {

/**

* 處理鼠標拖動事件

* */

public void mouseDragged(MouseEvent arg0) {

mouseMoved(arg0);

jb.setLocation(arg0.getPoint());

}

/**

* 處理鼠標移動事件

* */

public void mouseMoved(MouseEvent arg0) {

jt.setText(arg0.getPoint().toString());

}

});

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

MyMouse test = new MyMouse();

test.setVisible(true);

}

}

總結

以上是生活随笔為你收集整理的java 监听桌面鼠标事件,鼠标事件的监听和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。