Class JavafxRobotAdapter
java.lang.Object
org.testfx.service.adapter.impl.JavafxRobotAdapter
- All Implemented Interfaces:
RobotAdapter<JavafxRobotAdapter>
A
RobotAdapter implementation that uses the only the JavaFX public API.
Developer's Note: Forcing the type parameter to be JavafxRobotAdapter is a bit
of a kludge. Ideally we would use a JavafxRobot instead but such a type does
not exist.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate javafx.scene.input.MouseButtonprivate javafx.scene.Sceneprivate doubleprivate doubleprivate doubleprivate double -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate javafx.scene.input.KeyEventcreateKeyEvent(javafx.event.EventType<javafx.scene.input.KeyEvent> eventType, javafx.scene.input.KeyCode keyCode, String character) private javafx.scene.input.MouseEventcreateMouseEvent(javafx.event.EventType<javafx.scene.input.MouseEvent> eventType, double x, double y, javafx.scene.input.MouseButton mouseButton, int clickCount) private javafx.scene.input.ScrollEventcreateScrollEvent(int wheelAmount) javafx.scene.paint.ColorgetCapturePixelColor(javafx.geometry.Point2D location) Gets the color of a pixel at the given JavaFx coordinates.javafx.scene.image.ImagegetCaptureRegion(javafx.geometry.Rectangle2D region) Captures a region of the screen.private javafx.event.EventTargetgetEventTarget(javafx.scene.Scene scene) javafx.geometry.Point2DReturns the current position of the cursor in JavaFx coordinatesvoidkeyPress(javafx.scene.input.KeyCode key) Function used to make the robot press a key.voidkeyRelease(javafx.scene.input.KeyCode key) Function used to make the robot release a key.voidvoidmouseClick(javafx.scene.input.MouseButton button) voidmouseClick(javafx.scene.input.MouseButton button, int clickCount) voidmouseDrag(javafx.scene.input.MouseButton button) voidmouseMove(javafx.geometry.Point2D location) Moves the mouse cursor to the given position in JavaFx coordinatesvoidmousePress(javafx.scene.input.MouseButton button) Makes the robot press a mouse button.voidmousePress(javafx.scene.input.MouseButton button, int clickCount) voidmouseRelease(javafx.scene.input.MouseButton button) Makes the robot release a mouse button.voidmouseRelease(javafx.scene.input.MouseButton button, int clickCount) voidmouseWheel(int wheelAmount) Makes the robot to simulate a action of the mouse wheel.
Negative values indicate movement up/away from the user, positive values indicate movement down/towards the user.voidCreates a robot.voidrobotCreate(javafx.scene.Scene scene) voidDestroys the robot
-
Field Details
-
scene
private javafx.scene.Scene scene -
isShiftDown
private boolean isShiftDown -
isControlDown
private boolean isControlDown -
isAltDown
private boolean isAltDown -
isMetaDown
private boolean isMetaDown -
lastButtonPressed
private javafx.scene.input.MouseButton lastButtonPressed -
isButton1Pressed
private boolean isButton1Pressed -
isButton2Pressed
private boolean isButton2Pressed -
isButton3Pressed
private boolean isButton3Pressed -
sceneMouseX
private double sceneMouseX -
sceneMouseY
private double sceneMouseY -
screenMouseX
private double screenMouseX -
screenMouseY
private double screenMouseY
-
-
Constructor Details
-
JavafxRobotAdapter
public JavafxRobotAdapter()
-
-
Method Details
-
robotCreate
public void robotCreate(javafx.scene.Scene scene) -
robotCreate
public void robotCreate()Description copied from interface:RobotAdapterCreates a robot.- Specified by:
robotCreatein interfaceRobotAdapter<JavafxRobotAdapter>
-
robotDestroy
public void robotDestroy()Description copied from interface:RobotAdapterDestroys the robot- Specified by:
robotDestroyin interfaceRobotAdapter<JavafxRobotAdapter>
-
keyPress
public void keyPress(javafx.scene.input.KeyCode key) Description copied from interface:RobotAdapterFunction used to make the robot press a key. The key must be a physical existing key on the keyboard.- Specified by:
keyPressin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
key- the key to press (must exist on a keyboard)
-
keyRelease
public void keyRelease(javafx.scene.input.KeyCode key) Description copied from interface:RobotAdapterFunction used to make the robot release a key. The key must be a physical existing key on the keyboard.- Specified by:
keyReleasein interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
key- the key to press (must exist on a keyboard)
-
keyType
-
getMouseLocation
public javafx.geometry.Point2D getMouseLocation()Description copied from interface:RobotAdapterReturns the current position of the cursor in JavaFx coordinates- Specified by:
getMouseLocationin interfaceRobotAdapter<JavafxRobotAdapter>- Returns:
- the current position of the mouse cursor
-
mouseMove
public void mouseMove(javafx.geometry.Point2D location) Description copied from interface:RobotAdapterMoves the mouse cursor to the given position in JavaFx coordinates- Specified by:
mouseMovein interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
location- the location in JavaFx coordinates to move the cursor to
-
mousePress
public void mousePress(javafx.scene.input.MouseButton button, int clickCount) -
mouseRelease
public void mouseRelease(javafx.scene.input.MouseButton button, int clickCount) -
mouseClick
public void mouseClick(javafx.scene.input.MouseButton button, int clickCount) -
mousePress
public void mousePress(javafx.scene.input.MouseButton button) Description copied from interface:RobotAdapterMakes the robot press a mouse button.- Specified by:
mousePressin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
button- the button to press
-
mouseRelease
public void mouseRelease(javafx.scene.input.MouseButton button) Description copied from interface:RobotAdapterMakes the robot release a mouse button.- Specified by:
mouseReleasein interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
button- the button to release
-
mouseClick
public void mouseClick(javafx.scene.input.MouseButton button) -
mouseDrag
public void mouseDrag(javafx.scene.input.MouseButton button) -
mouseWheel
public void mouseWheel(int wheelAmount) Description copied from interface:RobotAdapterMakes the robot to simulate a action of the mouse wheel.
Negative values indicate movement up/away from the user, positive values indicate movement down/towards the user.- Specified by:
mouseWheelin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
wheelAmount- the amount to scroll
-
getCapturePixelColor
public javafx.scene.paint.Color getCapturePixelColor(javafx.geometry.Point2D location) Description copied from interface:RobotAdapterGets the color of a pixel at the given JavaFx coordinates. The returned Color is in the JavaFx color space. //TODO Due to technical reasons, there might be a deviation in color.- Specified by:
getCapturePixelColorin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
location- of the pixel in JavaFx coordinates, to retrieve the color for- Returns:
- the Color of the given Pixel in the JavaFx color space
-
getCaptureRegion
public javafx.scene.image.Image getCaptureRegion(javafx.geometry.Rectangle2D region) Description copied from interface:RobotAdapterCaptures a region of the screen. The returned Image is in the JavaFx color space. //TODO Due to technical reasons, there might be a deviation.- Specified by:
getCaptureRegionin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
region- the region to capture in JavaFx coordinates- Returns:
- a image of the region
-
getEventTarget
private javafx.event.EventTarget getEventTarget(javafx.scene.Scene scene) -
createKeyEvent
private javafx.scene.input.KeyEvent createKeyEvent(javafx.event.EventType<javafx.scene.input.KeyEvent> eventType, javafx.scene.input.KeyCode keyCode, String character) -
createMouseEvent
private javafx.scene.input.MouseEvent createMouseEvent(javafx.event.EventType<javafx.scene.input.MouseEvent> eventType, double x, double y, javafx.scene.input.MouseButton mouseButton, int clickCount) -
createScrollEvent
private javafx.scene.input.ScrollEvent createScrollEvent(int wheelAmount)
-