Is there any way to get text/char input that takes shift ctrl etc into account when returning the character? and also returns space as " " and not as the word?


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | public boolean checkKey(String key) { if (key == null ) if (Greenfoot.getKey() != null ) return true ; else return false ; if (Greenfoot.isKeyDown(key)) { if (! pressed_keys.contains(key)) { pressed_keys.add(key); return true ; } } else { pressed_keys.remove(key); } return false ; } public String getCurrentKey() { String key = Greenfoot.getKey(); if (!checkKey(key)) return "" ; if (key.equals( "shift" ) || key.equals( "control" ) || key.equals( "enter" ) || key.equals( "tab" ) || key.equals( "backspace" ) || key.equals( "up" ) || key.equals( "down" ) || key.equals( "left" ) || key.equals( "right" ) || key.equals( "escape" ) ) return "" ; for ( int i = 0 ; i < 12 ; i ++) { if (key.equals( "F" +i)) return "" ; } if (key.equals( "space" )) return " " ; if (Greenfoot.isKeyDown( "shift" )) { return key.toUpperCase(); } else return key; } |
1 2 3 4 5 6 7 8 9 10 11 12 | String someString = "" ; //... String key = Greenfoot.getKey(); if (key != null ) { if ( "space" .equals(key)) someString += " " ; //else if ("...what ever you also want to do something special...".equals(key)) ... else if (key.length() > 1 ) {} //ignore everything else with more than a single character else someString += key; } |