本文目錄一覽:
java鼠標雙擊事件怎麼實現
java鼠標雙擊事件的實現方法
鼠標的單雙擊事件在很多時候對我們幫助很大,但是在JAVA中卻沒有給出鼠標雙擊事件.我們可以通過事件源e.getClickCount()==2來判斷鼠標點擊次數來實現鼠標雙擊事件,例如:
public class MyMouseListener
extends java.awt.event.MouseAdapter …{
public void mouseClicked(MouseEvent e) …{
System.out.println(“clicked”);
int clickTimes = e.getClickCount();
if (clickTimes == 2) …{
System.out.println(“Doublc Clicked!”);
}
}
}
java鼠標點擊事件怎麼做?
java鼠標點擊事件的方法如下:
span style=”font-family:Verdana;”事件源/span.addMouseListener(new MouseAdapter() {//建立事件處理機制
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton()==e.BUTTON1){//點擊鼠標左鍵
int x=e.getX();
int y=e.getY();
String str=”您點擊的是左鍵,鼠標當前點擊位置的坐標是(” + x + “,” + y+”)”;
label.setText(str);
}else if(e.getButton()==e.BUTTON2){//點擊鼠標滑輪
int x=e.getX();
int y=e.getY();
String str=”您點擊的是滑輪,鼠標當前點擊位置的坐標是(” + x + “,” + y+”)”;
label.setText(str);
}
else if(e.getButton()==e.BUTTON3){//點擊鼠標右鍵
int x=e.getX();
int y=e.getY();
String str=”您點擊的是右鍵,鼠標當前點擊位置的坐標是(” + x + “,” + y+”)”;
label.setText(str);
}
}
});
e.getButton()返回值分別為NOBUTTON、BUTTON1、BUTTON2、BUTTON3,分別代表着無點擊、左擊、中間鍵、右擊三種情況。
給Java初學者的建議:
1,不一定要把java學深入。有多少人搞程序是喜歡這個的,搞程序一半是因為錢多,一半是因為晉陞公平。
2,初學者學java至少要脫產半年的時間才能算了解了,才適合被人帶,因為至少半年的時間,才知道遇到問題如何解決,有的人需要更長的時間。現在有很多人已經有5年左右的經驗了,在他們的壓制下,java初學者很難有逆襲的機會了。
3,行業環境,現在數據存儲,後台打包的方案的創業公司已經有苗頭,也就是說,後台開發已經被集中解決,日後會越來越成熟,這就是意味着,java招聘需要有經驗的人,也就是說,必須熬幾年後才能有突破。
4,java離市場較遠,所以呢?java開發人員很難有一個大的突破。
5,程序裏面有變量所以解決了一系列類似的問題,所以註定了程序必須提供大批服務時才能有高收益。
用java寫一個單擊鼠標事件
使用組件的paint函數用於繪圖, 使用MouseListener來響應鼠標的點擊
效果圖
代碼
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.*;
import javax.swing.*;
public class DemoWin extends JFrame {
public DemoWin() {
MyPanel mp = new MyPanel();
mp.addMouseListener(mp);
add(mp);
// 窗口屬性設置
setTitle(“Demo”);// 標題
setSize(300, 280);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口點擊關閉時,退出程序
}
public static void main(String[] args) {
DemoWin win = new DemoWin(); // 創建窗口
win.setVisible(true);// 顯示窗口
}
class MyPanel extends JPanel implements MouseListener {
int times;// 記錄點擊的次數
int x;// 記錄鼠標X軸的位置
int y;// 記錄鼠標Y軸的位置
@Override
public void paint(Graphics g) {
super.paint(g);
if (times == 0) {
g.setColor(Color.BLUE);// 顏色
g.fillOval(150, 150, 50, 50);// 150,150代表位置 50,50代表寬高
} else if (times == 1) {
g.setColor(Color.RED);
g.fillRect(150, 150, 50, 50);
} else {
g.setColor(Color.RED);
g.fillRect(x, y, 50, 50);
}
repaint();
}
public void mouseClicked(MouseEvent e) {
// if (e.getButton()==MouseEvent.BUTTON1) {//單擊左鍵時有效..
// times++;// 記錄點擊的次數
// x = e.getX();
// y = e.getY();
// }
}
public void mousePressed(MouseEvent e) {// 鼠標按下就有效
times++;// 記錄點擊的次數
x = e.getX();
y = e.getY();
}
public void mouseReleased(MouseEvent e) {// 鼠標釋放
}
public void mouseEntered(MouseEvent e) {// 鼠標移入
}
public void mouseExited(MouseEvent e) {// 鼠標移出
}
}
}
Java 程序實現鼠標點擊 鍵盤等事件
這個用MouseListener里的mouseEntered(MouseEvent
e)方法。
鼠標進入區域就產生事件反應。
如果之前申明了點擊事件可以在entered時間裏呼叫clicked事件。
JAVA鼠標雙擊事件
ava 沒有直接獲取鼠標雙擊事件的方法,因此我們可以在用戶每發生單擊事件時延時執行,
當時間在這段時間內用戶又一次發生了單擊事件,那麼就直接執行雙擊事件,取消上次的單擊事件
package com.aowin.stuff.Lisnter;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyMouseListener extends MouseAdapter {
private static boolean flag = false;
// 用來判斷是否已經執行雙擊事件
private static int clickNum = 0;
// 用來判斷是否該執行雙擊事件
@Override
public void mouseClicked(MouseEvent e) {
// final MouseEvent me = e;
MyMouseListener.flag = false;
System.out.println(clickNum);
if (MyMouseListener.clickNum == 1) {// 1時執行雙擊事件
System.out.println(“執行雙擊事件”);
MyMouseListener.clickNum = 0;
MyMouseListener.flag = true;
return;
}
// 定義定時器
Timer timer = new Timer();
// 定時器開始執行,延時0.2秒後確定是否執行單擊事件
timer.schedule(new TimerTask() {
private int n = 0;
// 記錄定時器執行次數
@Override
public void run() {
if (MyMouseListener.flag) {
MyMouseListener.clickNum = 0;
this.cancel();
return;
}
if (n == 1) {
System.out.println(“執行單擊事件”);
MyMouseListener.flag = true;
MyMouseListener.clickNum = 0;
n = 0;
this.cancel();
return;
}
clickNum++;
n++;
System.out.println(“第” + n);
System.out.println(clickNum);
}
}, new Date(), 200);
//上邊的意思是,單擊第一次會運行一次run方法clickNum 會加1,然後0.2秒後再執行Run方法 //如果在這0.2秒中間用戶又單擊了事件,那就會運行開頭的雙擊事件
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/280475.html