📄 mouse.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 + -