@Override public void setText(String s) { if (im.reset()) { im.getCommited(); preedit = ""; } super.setText(s); }
@Override public void gainFocus() { super.gainFocus(); if (im.reset()) { String input = super.text() + im.getCommited(); if (isValid(input)) super.setText(input); preedit = ""; } }
@Override public boolean handleKeyPress(int keyID, char keyChar) { if (!focused()) return false; if (keyID == Keyboard.KEY_BACK) { if (im.delete()) { preedit = im.getPreedit(); backdowntime = System.currentTimeMillis(); onTextChange(text()); return true; } // im.delete()가 실패할 경우 상위 클래스 메소드 호출 } else if (keyID == Keyboard.KEY_RETURN || keyID == Keyboard.KEY_ESCAPE || keyChar == 22) // Ctrl + V { if (im.reset()) { String input = super.text() + im.getCommited(); if (isValid(input)) super.setText(input); preedit = ""; } // 상위 클래스 메소드 호출 } else if (keyID == im.getToggleKey()) { im.toggleMode(); return true; } else if (isValid(Character.toString(keyChar))) { boolean shift = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); if (im.input(keyChar, shift)) super.setText(super.text() + im.getCommited()); preedit = im.getPreedit(); onTextChange(text()); return true; } return super.handleKeyPress(keyID, keyChar); }