六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦硬件知識>鍵盤鼠標>

java鼠標雙擊事件

時間: 沈迪豪908 分享

  愛學(xué)習(xí)的小伙伴們,可能都學(xué)習(xí)過java,但是你知道java鼠標雙擊事件是怎么實現(xiàn)的嗎?不知道的話跟著學(xué)習(xí)啦小編一起來學(xué)習(xí)了解java鼠標雙擊事件吧。

  java鼠標雙擊事件實例介紹

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

  }

  }

  } 但是這樣并沒有達到我們的要求,因為在每次觸發(fā)雙擊事件的同時會觸發(fā)單擊事件.所以我們試圖改進以上方案,不使用系統(tǒng)提供的e.getClickCount()方法.可以考慮當?shù)谝淮螁螕羰髽说臅r候讓鼠標單擊事件延時0.2秒執(zhí)行,而在這段時間里等待第二次單擊,如果有第二次單擊,那么我們執(zhí)行雙擊事件任務(wù),取消單擊任務(wù);如果在這段時間沒有等到再次單擊,那么執(zhí)行單擊任務(wù).

  下面是用定時器延時單擊事件實現(xiàn)鼠標雙擊事件,單擊和雙擊事件互不影響!

  public class MyMouseListener

  extends java.awt.event.MouseAdapter ...{

  private static boolean flag=false;//用來判斷是否已經(jīng)執(zhí)行雙擊事件

  private static int clickNum=0;//用來判斷是否該執(zhí)行雙擊事件

  public void mouseClicked(MouseEvent e) ...{

  final MouseEvent me=e;//事件源

  this.flag=false;//每次點擊鼠標初始化雙擊事件執(zhí)行標志為false

  if (this.clickNum == 1) ...{//當clickNum==1時執(zhí)行雙擊事件

  this.mouseDoubleClicked(me);//執(zhí)行雙擊事件

  this.clickNum=0;//初始化雙擊事件執(zhí)行標志為0

  this.flag=true;//雙擊事件已執(zhí)行,事件標志為true

  return;

  }

  //定義定時器

  java.util.Timer timer=new java.util.Timer();

  //定時器開始執(zhí)行,延時0.2秒后確定是否執(zhí)行單擊事件

  timer.schedule(new java.util.TimerTask() ...{

  private int n=0;//記錄定時器執(zhí)行次數(shù)

  public void run() ...{

  if(MyMouseListener.flag)...{//如果雙擊事件已經(jīng)執(zhí)行,那么直接取消單擊執(zhí)行

  n=0;

  MyMouseListener.clickNum=0;

  this.cancel();

  return;

  }

  if (n == 1) ...{//定時器等待0.2秒后,雙擊事件仍未發(fā)生,執(zhí)行單擊事件

  mouseSingleClicked(me);//執(zhí)行單擊事件

  MyMouseListener.flag = true;

  MyMouseListener.clickNum=0;

  n=0;

  this.cancel();

  return;

  }

  clickNum++;

  n++;

  }

  },new java.util.Date(),500);

  }

  /** *//**

  * 鼠標單擊事件

  * @param e 事件源參數(shù)

  */

  public void mouseSingleClicked(MouseEvent e)...{

  System.out.println("Single Clicked!");

  }

  /** *//**

  * 鼠標雙擊事件

  * @param e 事件源參數(shù)

  */

  public void mouseDoubleClicked(MouseEvent e)...{

  System.out.println("Doublc Clicked!");

  }

  }

  //Test.java

  import javax.swing.*;

  import java.awt.*;

  import java.awt.event.*;public class Test extends JFrame{

  public Test(){

  super("test");

  init();

  this.setSize(800,600);

  this.setVisible(true);

  }

  private void init(){

  JButton b=new JButton("button");

  b.setBounds(50,50,100,30);

  this.getContentPane().setLayout(null);

  this.getContentPane().add(b);

  b.addMouseListener(new MyMouseListener());

  }

  public static void main(String args[]){

  new Test();

  }

  }你將以上2個文件編譯一下,再運行 Test.java 文件即可

ava鼠標雙擊事件相關(guān)文章:

1.怎么用JS實現(xiàn)鼠標單擊與雙擊事件共存

2.鼠標單擊變成雙擊怎么解決

3.鼠標單擊變雙擊或者多擊怎么解決

4.鼠標單擊變雙擊的修復(fù)方法

5.計算機網(wǎng)絡(luò)實驗論文

1998268