• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦>學習電腦>電腦硬件知識>鍵盤鼠標>

    java鼠標雙擊事件

    時間: 沈迪豪908 分享

      愛學習的小伙伴們,可能都學習過java,但是你知道java鼠標雙擊事件是怎么實現的嗎?不知道的話跟著學習啦小編一起來學習了解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!");

      }

      }

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

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

      public class MyMouseListener

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

      private static boolean flag=false;//用來判斷是否已經執行雙擊事件

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

      public void mouseClicked(MouseEvent e) ...{

      final MouseEvent me=e;//事件源

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

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

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

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

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

      return;

      }

      //定義定時器

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

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

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

      private int n=0;//記錄定時器執行次數

      public void run() ...{

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

      n=0;

      MyMouseListener.clickNum=0;

      this.cancel();

      return;

      }

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

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

      MyMouseListener.flag = true;

      MyMouseListener.clickNum=0;

      n=0;

      this.cancel();

      return;

      }

      clickNum++;

      n++;

      }

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

      }

      /** *//**

      * 鼠標單擊事件

      * @param e 事件源參數

      */

      public void mouseSingleClicked(MouseEvent e)...{

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

      }

      /** *//**

      * 鼠標雙擊事件

      * @param e 事件源參數

      */

      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鼠標雙擊事件相關文章:

    1.怎么用JS實現鼠標單擊與雙擊事件共存

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

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

    4.鼠標單擊變雙擊的修復方法

    5.計算機網絡實驗論文

    1998268 主站蜘蛛池模板: 韩国福利影视一区二区三区| 午夜寂寞在线一级观看免费| 国产在线精品一区二区在线看| 国产成人午夜高潮毛片| 国产人澡人澡澡澡人碰视频| 国产一区二区三区在线影院| 四虎在线成人免费网站| 免费精品99久久国产综合精品| 人人爽人人爽人人片av免费| 亚洲精品成人片在线播放| 亚洲日产2021三区| 久青草无码视频在线观看| 久久亚洲精品无码aⅴ大香| 中文字幕avdvd| av色综合网站| 大战孕妇12p| 色综合久久久无码中文字幕| 真实男女动态无遮挡图| 欧美国产成人在线| 日本少妇高潮喷水xxxxxxx| 少妇人妻在线视频| 国产色无码精品视频国产| 国产成人午夜片在线观看| 品色堂永久免费| 亚洲最新视频在线观看| 久久国产精品无码一区二区三区| 一级一级特黄女人精品毛片 | 成人免费无码大片a毛片软件| 国产高清在线精品一区| 国产剧情在线播放| 亚洲综合久久综合激情久久| 久久精品国产亚洲av四虎| www.onlyfans.com| 欧美黄色一级在线| 精品国产一区二区三区无码| 欧美成年黄网站色视频| 男女性潮高清免费网站| 最近中文字幕免费mv在线视频| 性做久久久久久免费观看| 国产精品igao视频网网址| 午夜国产羞羞视频免费网站|