Class JavafxRobotAdapter

java.lang.Object
org.testfx.service.adapter.impl.JavafxRobotAdapter
All Implemented Interfaces:
RobotAdapter<JavafxRobotAdapter>

public class JavafxRobotAdapter extends Object implements 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

    Fields
    Modifier and Type
    Field
    Description
    private boolean
     
    private boolean
     
    private boolean
     
    private boolean
     
    private boolean
     
    private boolean
     
    private boolean
     
    private javafx.scene.input.MouseButton
     
    private javafx.scene.Scene
     
    private double
     
    private double
     
    private double
     
    private double
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private javafx.scene.input.KeyEvent
    createKeyEvent(javafx.event.EventType<javafx.scene.input.KeyEvent> eventType, javafx.scene.input.KeyCode keyCode, String character)
     
    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)
     
    private javafx.scene.input.ScrollEvent
    createScrollEvent(int wheelAmount)
     
    javafx.scene.paint.Color
    getCapturePixelColor(javafx.geometry.Point2D location)
    Gets the color of a pixel at the given JavaFx coordinates.
    javafx.scene.image.Image
    getCaptureRegion(javafx.geometry.Rectangle2D region)
    Captures a region of the screen.
    private javafx.event.EventTarget
    getEventTarget(javafx.scene.Scene scene)
     
    javafx.geometry.Point2D
    Returns the current position of the cursor in JavaFx coordinates
    void
    keyPress(javafx.scene.input.KeyCode key)
    Function used to make the robot press a key.
    void
    keyRelease(javafx.scene.input.KeyCode key)
    Function used to make the robot release a key.
    void
    keyType(javafx.scene.input.KeyCode key, String character)
     
    void
    mouseClick(javafx.scene.input.MouseButton button)
     
    void
    mouseClick(javafx.scene.input.MouseButton button, int clickCount)
     
    void
    mouseDrag(javafx.scene.input.MouseButton button)
     
    void
    mouseMove(javafx.geometry.Point2D location)
    Moves the mouse cursor to the given position in JavaFx coordinates
    void
    mousePress(javafx.scene.input.MouseButton button)
    Makes the robot press a mouse button.
    void
    mousePress(javafx.scene.input.MouseButton button, int clickCount)
     
    void
    mouseRelease(javafx.scene.input.MouseButton button)
    Makes the robot release a mouse button.
    void
    mouseRelease(javafx.scene.input.MouseButton button, int clickCount)
     
    void
    mouseWheel(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.
    void
    Creates a robot.
    void
    robotCreate(javafx.scene.Scene scene)
     
    void
    Destroys the robot

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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: RobotAdapter
      Creates a robot.
      Specified by:
      robotCreate in interface RobotAdapter<JavafxRobotAdapter>
    • robotDestroy

      public void robotDestroy()
      Description copied from interface: RobotAdapter
      Destroys the robot
      Specified by:
      robotDestroy in interface RobotAdapter<JavafxRobotAdapter>
    • keyPress

      public void keyPress(javafx.scene.input.KeyCode key)
      Description copied from interface: RobotAdapter
      Function used to make the robot press a key. The key must be a physical existing key on the keyboard.
      Specified by:
      keyPress in interface RobotAdapter<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: RobotAdapter
      Function used to make the robot release a key. The key must be a physical existing key on the keyboard.
      Specified by:
      keyRelease in interface RobotAdapter<JavafxRobotAdapter>
      Parameters:
      key - the key to press (must exist on a keyboard)
    • keyType

      public void keyType(javafx.scene.input.KeyCode key, String character)
    • getMouseLocation

      public javafx.geometry.Point2D getMouseLocation()
      Description copied from interface: RobotAdapter
      Returns the current position of the cursor in JavaFx coordinates
      Specified by:
      getMouseLocation in interface RobotAdapter<JavafxRobotAdapter>
      Returns:
      the current position of the mouse cursor
    • mouseMove

      public void mouseMove(javafx.geometry.Point2D location)
      Description copied from interface: RobotAdapter
      Moves the mouse cursor to the given position in JavaFx coordinates
      Specified by:
      mouseMove in interface RobotAdapter<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: RobotAdapter
      Makes the robot press a mouse button.
      Specified by:
      mousePress in interface RobotAdapter<JavafxRobotAdapter>
      Parameters:
      button - the button to press
    • mouseRelease

      public void mouseRelease(javafx.scene.input.MouseButton button)
      Description copied from interface: RobotAdapter
      Makes the robot release a mouse button.
      Specified by:
      mouseRelease in interface RobotAdapter<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: RobotAdapter
      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.
      Specified by:
      mouseWheel in interface RobotAdapter<JavafxRobotAdapter>
      Parameters:
      wheelAmount - the amount to scroll
    • getCapturePixelColor

      public javafx.scene.paint.Color getCapturePixelColor(javafx.geometry.Point2D location)
      Description copied from interface: RobotAdapter
      Gets 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:
      getCapturePixelColor in interface RobotAdapter<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: RobotAdapter
      Captures 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:
      getCaptureRegion in interface RobotAdapter<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)