Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <pre><code>import java.awt.Robot; import java.awt.event.KeyEvent; /** * @author Trevor * Handles alpha numerics and common punctuation */ public class RobotKeyboard{ private Robot robot; public RobotKeyboard(Robot robot){ this.robot = robot; } public void typeMessage(String message){ for (int i = 0; i &lt; message.length(); i++){ handleRepeatCharacter(message, i); type(message.charAt(i)); } } private void handleRepeatCharacter(String message, int i){ if(i == 0) return; //The robot won't type the same letter twice unless we release a key. if(message.charAt(i) == message.charAt(i-1)){ robot.keyPress(KeyEvent.VK_SHIFT); robot.keyRelease(KeyEvent.VK_SHIFT); } } private void type(char character){ handleSpecialCharacter(character); if (Character.isLowerCase(character)){ typeCharacter(Character.toUpperCase(character)); } if (Character.isUpperCase(character)){ typeShiftCharacter(character); } if (Character.isDigit(character)){ typeCharacter(character); } } private void handleSpecialCharacter(char character){ if (character == ' ') typeCharacter(KeyEvent.VK_SPACE); if (character == '.') typeCharacter(KeyEvent.VK_PERIOD); if (character == '!') typeShiftCharacter(KeyEvent.VK_1); if (character == '?') typeShiftCharacter(KeyEvent.VK_SLASH); if (character == ',') typeCharacter(KeyEvent.VK_COMMA); //More specials here as needed } private void typeCharacter(int character){ robot.keyPress(character); } private void typeShiftCharacter(int character){ robot.keyPress(KeyEvent.VK_SHIFT); robot.keyPress(character); robot.keyRelease(KeyEvent.VK_SHIFT); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload