So I made a javafx application that store texts and you can choose which text you want the program to type in (using for a game to set the binds)
I have this:
public class AutoClicker {
private Robot robot;
public AutoClicker() {
try {
robot = new Robot();
} catch (AWTException ex) {
System.out.println("Problem in AutoClicker constructor: " + ex);
}
}
public void click(int button) {
robot.keyPress(button);
robot.delay(10);
robot.keyRelease(button);
}
public void oneModifier(int pressing, int button) {
robot.keyPress(pressing);
robot.delay(10);
robot.keyPress(button);
robot.delay(10);
robot.keyRelease(button);
robot.delay(10);
robot.keyRelease(pressing);
robot.delay(10);
}
public void twoModifier(int pressing1, int pressing2, int button) {
robot.keyPress(pressing1);
robot.delay(10);
robot.keyPress(pressing2);
robot.delay(10);
robot.keyPress(button);
robot.delay(10);
robot.keyRelease(button);
robot.delay(10);
robot.keyRelease(pressing2);
robot.delay(10);
robot.keyRelease(pressing1);
robot.delay(10);
}
public void clickingENG(String tmp) {
int length = tmp.length();
int[] text = new int[length];
for (int i = 0; i < length; i++) {
text[i] = tmp.charAt(i);
}
for (int i = 0; i < text.length; i++) {
switch (text[i]) {
case ' ':
click(KeyEvent.VK_SPACE);
break;
case '.':
click(KeyEvent.VK_PERIOD);
break;
case '"':
oneModifier(KeyEvent.VK_SHIFT, KeyEvent.VK_QUOTE);
break;
case '/':
click(KeyEvent.VK_SLASH);
break;
case '\\':
click(KeyEvent.VK_BACK_SLASH);
break;
case '+':
oneModifier(KeyEvent.VK_SHIFT, KeyEvent.VK_EQUALS);
break;
case '!':
oneModifier(KeyEvent.VK_SHIFT, KeyEvent.VK_1);
break;
case '0':
click(KeyEvent.VK_0);
break;
case '1':
click(KeyEvent.VK_1);
break;
case '2':
click(KeyEvent.VK_2);
break;
case '3':
click(KeyEvent.VK_3);
break;
case '4':
click(KeyEvent.VK_4);
break;
case '5':
click(KeyEvent.VK_5);
break;
case '6':
click(KeyEvent.VK_6);
break;
case '7':
click(KeyEvent.VK_7);
break;
case '8':
click(KeyEvent.VK_8);
break;
case '9':
click(KeyEvent.VK_9);
break;
default:
click(text[i] - 32);
break;
}
}
click(KeyEvent.VK_ENTER);
}
}
As you can see alot of cases... And if I want to use upper cases... (ABCDEFGHIJKLMON...) I would need 26 another case... Not talking about the symbols... Thats much more cases... And this is ugly, and it would be uglier if I'd make 150 another cases, and much time...
Is there any way if it gets a 'A' I do not have to do the next:
case 'A':
oneModifier(KeyEvent.VK_SHIFT, KeyEvent.VK_A);
break;
For 'B':
case 'B':
oneModifier(KeyEvent.VK_SHIFT, KeyEvent.VK_B);
break;