欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
使用SWT模擬鼠標鍵盤(pán)事件

    最近在學(xué)習SWT/JFace,在做一個(gè)小東西的時(shí)候需要模擬鼠標鍵盤(pán)事件,在網(wǎng)上搜了一下,在java中模擬這些事件,主要有兩種方法:

一、使用AWT中的Robot類(lèi)

Robot

java.lang.Object
java.awt.Robot

public class Robot
extends Object
此類(lèi)用于為測試自動(dòng)化、自運行演示程序和其他需要控制鼠標和鍵盤(pán)的應用程序生成本機系統輸入事件。Robot 的主要目的是便于 Java 平臺實(shí)現自動(dòng)測試。類(lèi)中幾個(gè)主要的模擬函數如下:
void keyPress(int keycode)
          按下給定的鍵。
 void keyRelease(int keycode)
          釋放給定的鍵。
 void mouseMove(int x, int y)
          將鼠標指針移動(dòng)到給定屏幕坐標。
 void mousePress(int buttons)
          按下一個(gè)或多個(gè)鼠標按鈕。
 void mouseRelease(int buttons)
          釋放一個(gè)或多個(gè)鼠標按鈕。
 void mouseWheel(int wheelAmt)
          在配有滾輪的鼠標上旋轉滾輪。
二、使用SWT中的鼠標鍵盤(pán)事件
    在SWT的snippets中有兩個(gè)例子用來(lái)介紹這兩個(gè)方法的使用,如下:

(1)、模擬鼠標事件
 * UI Automation (for testing tools) snippet: post mouse events
import org.eclipse.swt.*;
public class Snippet142 {
public static void main(String[] args) {
 final Display display = new Display();
 final Shell shell = new Shell(display);
 final Button button = new Button(shell,SWT.NONE);
 button.setSize(100,100);
 button.setText("Click");
 shell.pack();
 shell.open();
 button.addListener(SWT.MouseDown, new Listener() {
  public void handleEvent(Event e){
   System.out.println("Mouse Down (button: " + e.button + " x: " + e.x + " y: " + e.y + ")");
  }
 });
 final Point pt = display.map(shell, null, 50, 50);
 new Thread(){
  Event event;
  public void run(){
   try {
    Thread.sleep(300);
   } catch (InterruptedException e) {}
   event = new Event();
   event.type = SWT.MouseMove;
   event.x = pt.x;
   event.y = pt.y;
   display.post(event);
   try {
    Thread.sleep(300);
   } catch (InterruptedException e) {}
   event.type = SWT.MouseDown;
   event.button = 1;
   display.post(event);
   try {
    Thread.sleep(300);
   } catch (InterruptedException e) {}
   event.type = SWT.MouseUp;
   display.post(event);
  } 
 }.start();
 while (!shell.isDisposed()) {
  if (!display.readAndDispatch()) display.sleep();
 }
 display.dispose();
}
}
(2)、模擬鍵盤(pán)事件

 * UI Automation (for testing tools) snippet: post key events
import org.eclipse.swt.*;
public class Snippet146 {
public static void main(String[] args) {
 final Display display = new Display();
 final Shell shell = new Shell(display);
 final Text text = new Text(shell, SWT.BORDER);
 text.setSize(text.computeSize(150, SWT.DEFAULT));
 shell.pack();
 shell.open();
 new Thread(){
  public void run(){
   String string = "Love the method.";
   for (int i = 0; i < string.length(); i++) {
    char ch = string.charAt(i);
    boolean shift = Character.isUpperCase(ch);
    ch = Character.toLowerCase(ch);
    if (shift) {
     Event event = new Event();
     event.type = SWT.KeyDown;
     event.keyCode = SWT.SHIFT;
     display.post(event); 
    }
    Event event = new Event();
    event.type = SWT.KeyDown;
    event.character = ch;
    display.post(event);
    try {
     Thread.sleep(10);
    } catch (InterruptedException e) {}
    event.type = SWT.KeyUp;
    display.post(event);
    try {
     Thread.sleep(100);
    } catch (InterruptedException e) {}
    if (shift) {
     event = new Event();
     event.type = SWT.KeyUp;
     event.keyCode = SWT.SHIFT;
     display.post(event); 
    }
   }
  } 
 }.start();
 while (!shell.isDisposed()) {
  if (!display.readAndDispatch()) display.sleep();
 }
 display.dispose();
}
}
兩種方法中都是先聲明一個(gè)Event,然后將該Event的type類(lèi)型設置為對應的SWT.KeyUp/KeyDown/MouseUp/MouseDown,最后通過(guò)Display類(lèi)的post(Event)方法來(lái)模擬對應的事件。注意:如果有多個(gè)控件,需要得到對應控件的display屬性,然后post該事件。例如,在一個(gè)窗口中有一個(gè)Browser,則需要使用thisClass.browser.getDisplay().post(event)。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
SWT中設定TABLE行的高度
(DM)用DRAW2D畫(huà)多邊形的例子
SWT代碼研究
swt與awt/swing互嵌
SWT實(shí)現彈出日歷控件
Swt常用控件中文教程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久