⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mouse.java

📁 基于Junit的 功能和单元测试的的测试工具。只支持Swing.
💻 JAVA
字号:
package org.uispec4j;

import java.awt.*;
import java.awt.event.MouseEvent;

/**
 * Utility for simulating mouse inputs.
 */
public class Mouse {

  private Mouse() {
  }

  /**
   * Clicks in the center of a UIComponent.
   */
  public static void click(UIComponent uiComponent) {
    doClick(uiComponent.getAwtComponent(), 1);
  }

  /**
   * Double clicks in the center of a UIComponent.
   */
  public static void doubleClick(UIComponent uiComponent) {
    doClick(uiComponent.getAwtComponent(), 2);
  }

  /**
   * Clicks in a given area of a UIComponent.
   */
  public static void doClickInRectangle(UIComponent uiComponent,
                                        Rectangle rect,
                                        boolean useRightClick,
                                        Key.Modifier keyModifier) {
    doClickInRectangle(uiComponent.getAwtComponent(), rect, useRightClick, keyModifier);
  }

  /**
   * Clicks in a given area of a Swing component.
   */
  public static void doClickInRectangle(Component component,
                                        Rectangle rect,
                                        boolean useRightClick,
                                        Key.Modifier keyModifier) {
    doClickInRectangle(component, rect, useRightClick, keyModifier, 1);
  }

  /**
   * Double clicks in a given area of a Swing component.
   */
  public static void doDoubleClickInRectangle(Component component, Rectangle rect) {
    doClickInRectangle(component, rect, false, Key.Modifier.NONE, 2);
  }

  /**
   * Double clicks in a given area of a UIComponent.
   */
  public static void doDoubleClickInRectangle(UIComponent uiComponent, Rectangle rect) {
    doDoubleClickInRectangle(uiComponent.getAwtComponent(), rect);
  }

  private static void doClickInRectangle(Component component, Rectangle rect, boolean useRightClick, Key.Modifier keyModifier, int nbClicks) {
    int modifiers = useRightClick ? MouseEvent.BUTTON3_MASK : MouseEvent.BUTTON1_MASK;
    modifiers |= keyModifier.getCode();
    final int x = rect.x + (rect.width / 2);
    final int y = rect.y + (rect.height / 2);
    component.dispatchEvent(new MouseEvent(component, MouseEvent.MOUSE_PRESSED, 1, modifiers, x, y, nbClicks, false));
    component.dispatchEvent(new MouseEvent(component, MouseEvent.MOUSE_RELEASED, 1, modifiers, x, y, nbClicks, useRightClick));
    component.dispatchEvent(new MouseEvent(component, MouseEvent.MOUSE_CLICKED, 1, modifiers, x, y, nbClicks, false));
  }

  private static void doClick(Component component, int clickCount) {
    doClickInRectangle(component, new Rectangle(), false, Key.Modifier.NONE, clickCount);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -