📄 inputmethodhandler.java
字号:
/** * @(#)InputMethodHandler.java 1.29 02/09/17 @(#) * * Copyright (c) 2000-2002 Sun Microsystems, Inc. All rights reserved. * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms. */package com.sun.midp.lcdui;import com.sun.midp.main.Configuration;/** * The InputMethod handler. */abstract public class InputMethodHandler { /** A special no-op key. */ public static final int KEYCODE_NONE = -1; /** Key code for deleting */ public static final int KEYCODE_CLEAR = -2; /** Key code for deleting all text */ public static final int KEYCODE_CLEARALL = -3; /** Key code if the '#' key is pressed in NUMERIC or DECIMAL */ public static final int KEYCODE_SIGNCHANGE = -4; /** Key code if the '#' key is pressed in NUMERIC or DECIMAL */ public static final int KEYCODE_SHIFT = -5; /** handle for the current input method handler. */ private static InputMethodHandler thisIM; /** * get the input method handler. * @return the current input method handler. */ public static InputMethodHandler getInputMethodHandler() { if (thisIM != null) { return thisIM; } thisIM = getInputMethodHandlerImpl(); return thisIM; } /** * get the input handler class. * @return handle to input method handlet. */ private static InputMethodHandler getInputMethodHandlerImpl() { try { String n = Configuration.getProperty( "com.sun.midp.lcdui.inputMethodHandler"); if (n != null) { Class c = Class.forName(n); return (InputMethodHandler) c.newInstance(); } String loc = Configuration.getProperty("microedition.locale"); if (loc != null) { /* * This only check for the first '-' in the locale, and * convert to '_' for Class.forName() to work. */ int hyphen; if ((hyphen = loc.indexOf('-')) != -1) { StringBuffer tmploc = new StringBuffer(loc); tmploc.setCharAt(hyphen, '_'); loc = tmploc.toString(); } String cls = "com.sun.midp.lcdui.i18n.DefaultInputMethodHandler_"; while (true) { try { Class c = Class.forName(cls + loc); return (InputMethodHandler) c.newInstance(); } catch (Throwable t) {} int pos = loc.lastIndexOf('_'); if (pos == -1) { break; } else { loc = loc.substring(0, pos); } } } Class c = Class.forName("com.sun.midp.lcdui.DefaultInputMethodHandler"); return (InputMethodHandler) c.newInstance(); } catch (Throwable t) { System.out.println(t); throw new Error("Textbox input method was not initialized."); } } /** * Set the InputMethodClient object to the InputMethod. * @param imc save the current input method client. */ public abstract void setInputMethodClient(InputMethodClient imc); /** * Clears the current input handler if it matches the specified one. * Any pending keys are first sent to the client. * * @param imc the client that was set to receive callbacks * @return true if the current client was cleared, false otherwise */ public abstract boolean clearInputMethodClient(InputMethodClient imc); /** * Called when a key is pressed. * @param keyCode The key code of the key that was pressed * @return the key code of the actual key that was input. This may * depend on the keymap in use. -1 if no immediate decision * could be made, in which case a call back may occur in the future. */ public abstract int keyPressed(int keyCode); /** * Called when a key is released. * @param keyCode The key code of the key that was released * @return the key code of the key released */ public abstract int keyReleased(int keyCode); /** * Called when a key is repeated. * @param keyCode The key code of the key that was repeated * @return the key code of the key repeated */ public abstract int keyRepeated(int keyCode); /** * Called when a key is repeated. * @param c The key code of the key that was repeated * @return the key code of the actual key that was input. This may * depend on the keymap in use. -1 if no immediate decision * could be made, in which case a call back may occur in the future. */ public abstract int keyTyped(char c); /** * Removes any pending key presses */ public abstract void flush(); /** * Return the supported input modes. * @return array of strings of supported input modes. */ public abstract String[] supportedInputModes(); /** * set the constraints, modifiers, and other data structures that * depend on them. * * @param constraints constraints to set. See TextField for values * @return true if the constraints were set, false otherwise */ public abstract boolean setConstraints(int constraints); /** * Determine whether the character is considered a symbol * * @param c character to test * @return true if the character is considered a symbol, false otherwise */ public boolean isSymbol(char c) { return false; } /** * End the on-going composition. Any keys that are pending are * conditionally sent to the client. * * @param discard true to discard any pending keys */ public abstract void endComposition(boolean discard);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -