Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<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>
 

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