dvorakkeyboardinterpreter.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 352 行

JAVA
352
字号
/*
 * $Id: DvorakKeyboardInterpreter.java,v 1.4 2004/02/15 11:07:42 epr Exp $
 * 
 * Copyright, Sam Reid, 2003.
 */
package org.jnode.driver.input;

import java.awt.event.KeyEvent;


/**
 * @author Sam Reid
 */
public class DvorakKeyboardInterpreter extends KeyboardInterpreter {
	
	/**
	 * Method interpretExtendedScanCode this method sould be used to handle the dead keys and other special keys
	 *
	 * @param    scancode            an int
	 * @param    vk                  an int
	 * @param    released            a  boolean
	 *
	 * @return   the char to use or throws an Exception
	 * @exception   UnsupportedKeyException is thrown if the current key is not handled by this method
	 * @exception   DeadKeyException is thrown if the current key is a dead key
	 *
	 * @author 	Marc DENTY
	 * @version  2/8/2004
	 * @since 0.15
	 */
	protected char interpretExtendedScanCode(int scancode, int vk, boolean released) throws UnsupportedKeyException, DeadKeyException {
		// TODO
		throw new UnsupportedKeyException();
	}
	
	
//    private Hashtable table;


    public DvorakKeyboardInterpreter() {
        super();
    }
//        table = new Hashtable();
//        //home row
//        put(KeyEvent.VK_A, KeyEvent.VK_A);
//        put(KeyEvent.VK_S, KeyEvent.VK_O);
//        put(KeyEvent.VK_D, KeyEvent.VK_E);
//        put(KeyEvent.VK_F, KeyEvent.VK_U);
//        put(KeyEvent.VK_G, KeyEvent.VK_I);
//        put(KeyEvent.VK_H, KeyEvent.VK_D);
//        put(KeyEvent.VK_J, KeyEvent.VK_H);
//        put(KeyEvent.VK_K, KeyEvent.VK_T);
//        put(KeyEvent.VK_L, KeyEvent.VK_N);
//        put(KeyEvent.VK_SEMICOLON, KeyEvent.VK_S);
//        put(KeyEvent.VK_COMMA, KeyEvent.VK_UNDERSCORE);
//
//        //top row
//        put(KeyEvent.VK_Q, KeyEvent.VK_QUOTE);
//        put(KeyEvent.VK_W, KeyEvent.VK_LESS);
//        put(KeyEvent.VK_E, KeyEvent.VK_GREATER);
//        put(KeyEvent.VK_R, KeyEvent.VK_P);
//        put(KeyEvent.VK_T, KeyEvent.VK_Y);
//        put(KeyEvent.VK_Y, KeyEvent.VK_F);
//        put(KeyEvent.VK_U, KeyEvent.VK_G);
//        put(KeyEvent.VK_I, KeyEvent.VK_C);
//        put(KeyEvent.VK_O, KeyEvent.VK_R);
//        put(KeyEvent.VK_L, KeyEvent.VK_L);
//        put(KeyEvent.VK_OPEN_BRACKET, KeyEvent.VK_SLASH);
//        put(KeyEvent.VK_CLOSE_BRACKET, KeyEvent.VK_EQUALS);
//
//        //bottom row
//        put(KeyEvent.VK_Z, KeyEvent.VK_SEMICOLON);
//        put(KeyEvent.VK_X, KeyEvent.VK_Q);
//        put(KeyEvent.VK_C, KeyEvent.VK_J);
//        put(KeyEvent.VK_V, KeyEvent.VK_K);
//        put(KeyEvent.VK_B, KeyEvent.VK_X);
//        put(KeyEvent.VK_N, KeyEvent.VK_B);
//        put(KeyEvent.VK_M, KeyEvent.VK_M);
//        put(KeyEvent.VK_COMMA, KeyEvent.VK_W);
//        put(KeyEvent.VK_PERIOD, KeyEvent.VK_V);
//        put(KeyEvent.VK_SLASH, KeyEvent.VK_Z);
//
//    }
//
//    private void put(int key, int value) {
//        table.put(new Integer(key), new Integer(value));
//
//    }
//
//    protected int deriveKeyCode(int scancode, boolean extended) {
//        int qwerty = super.deriveKeyCode(scancode, extended);
//        return qwertyToDvorak(qwerty);
//    }
//
//    private int qwertyToDvorak(int qwerty) {
//        if (containsKey(qwerty))
//            return get(qwerty);
//        else
//            return qwerty;
//    }
//
//    private boolean containsKey(int qwerty) {
//        return table.containsKey(new Integer(qwerty));
//    }
//
//    public int get(int qwerty) {
//        Integer out = (Integer) table.get(new Integer(qwerty));
//        return out.intValue();
//    }

	/**
	 * Initialize the mapping between scancode and virtual key code.
	 */
	protected void initVkMap() {
		vkMap[0] = KeyEvent.VK_UNDEFINED;
		vkMap[1] = KeyEvent.VK_ESCAPE;
		vkMap[2] = KeyEvent.VK_1;
		vkMap[3] = KeyEvent.VK_2;
		vkMap[4] = KeyEvent.VK_3;
		vkMap[5] = KeyEvent.VK_4;
		vkMap[6] = KeyEvent.VK_5;
		vkMap[7] = KeyEvent.VK_6;
		vkMap[8] = KeyEvent.VK_7;
		vkMap[9] = KeyEvent.VK_8;
		vkMap[10] = KeyEvent.VK_9;
		vkMap[11] = KeyEvent.VK_0;
		vkMap[12] = KeyEvent.VK_OPEN_BRACKET;
		vkMap[13] = KeyEvent.VK_CLOSE_BRACKET;
		vkMap[14] = KeyEvent.VK_BACK_SPACE;
		vkMap[15] = KeyEvent.VK_TAB;
		vkMap[16] = KeyEvent.VK_QUOTE;
		vkMap[17] = KeyEvent.VK_LESS;
		vkMap[18] = KeyEvent.VK_GREATER;
		vkMap[19] = KeyEvent.VK_P;
		vkMap[20] = KeyEvent.VK_Y;
		vkMap[21] = KeyEvent.VK_F;
		vkMap[22] = KeyEvent.VK_G;
		vkMap[23] = KeyEvent.VK_C;
		vkMap[24] = KeyEvent.VK_R;
		vkMap[25] = KeyEvent.VK_L;
		vkMap[26] = KeyEvent.VK_SLASH;
		vkMap[27] = KeyEvent.VK_EQUALS;
		vkMap[28] = KeyEvent.VK_ENTER;
		vkMap[29] = KeyEvent.VK_CONTROL;
		vkMap[30] = KeyEvent.VK_A;
		vkMap[31] = KeyEvent.VK_O;
		vkMap[32] = KeyEvent.VK_E;
		vkMap[33] = KeyEvent.VK_U;
		vkMap[34] = KeyEvent.VK_I;
		vkMap[35] = KeyEvent.VK_D;
		vkMap[36] = KeyEvent.VK_H;
		vkMap[37] = KeyEvent.VK_T;
		vkMap[38] = KeyEvent.VK_N;
		vkMap[39] = KeyEvent.VK_S;
		vkMap[40] = KeyEvent.VK_SUBTRACT;
		vkMap[41] = KeyEvent.VK_BACK_QUOTE;
		vkMap[42] = KeyEvent.VK_SHIFT;
		vkMap[43] = KeyEvent.VK_BACK_SLASH;
		vkMap[44] = KeyEvent.VK_SEMICOLON;
		vkMap[45] = KeyEvent.VK_Q;
		vkMap[46] = KeyEvent.VK_J;
		vkMap[47] = KeyEvent.VK_K;
		vkMap[48] = KeyEvent.VK_X;
		vkMap[49] = KeyEvent.VK_B;
		vkMap[50] = KeyEvent.VK_M;
		vkMap[51] = KeyEvent.VK_W;
		vkMap[52] = KeyEvent.VK_V;
		vkMap[53] = KeyEvent.VK_Z;
		vkMap[54] = KeyEvent.VK_SHIFT;
		vkMap[55] = KeyEvent.VK_MULTIPLY;
		vkMap[56] = KeyEvent.VK_ALT;
		vkMap[57] = KeyEvent.VK_SPACE;
		vkMap[58] = KeyEvent.VK_CAPS_LOCK;
		vkMap[59] = KeyEvent.VK_F1;
		vkMap[60] = KeyEvent.VK_F2;
		vkMap[61] = KeyEvent.VK_F3;
		vkMap[62] = KeyEvent.VK_F4;
		vkMap[63] = KeyEvent.VK_F5;
		vkMap[64] = KeyEvent.VK_F6;
		vkMap[65] = KeyEvent.VK_F7;
		vkMap[66] = KeyEvent.VK_F8;
		vkMap[67] = KeyEvent.VK_F9;
		vkMap[68] = KeyEvent.VK_F10;
		vkMap[69] = KeyEvent.VK_NUM_LOCK;
		vkMap[70] = KeyEvent.VK_SCROLL_LOCK;
		vkMap[71] = KeyEvent.VK_NUMPAD7;
		vkMap[72] = KeyEvent.VK_NUMPAD8;
		vkMap[73] = KeyEvent.VK_NUMPAD9;
		vkMap[74] = KeyEvent.VK_SUBTRACT;
		vkMap[75] = KeyEvent.VK_NUMPAD4;
		vkMap[76] = KeyEvent.VK_NUMPAD5;
		vkMap[77] = KeyEvent.VK_NUMPAD6;
		vkMap[78] = KeyEvent.VK_ADD;
		vkMap[79] = KeyEvent.VK_NUMPAD1;
		vkMap[80] = KeyEvent.VK_NUMPAD2;
		vkMap[81] = KeyEvent.VK_NUMPAD3;
		vkMap[82] = KeyEvent.VK_NUMPAD0;
		vkMap[83] = KeyEvent.VK_DECIMAL;
		vkMap[87] = KeyEvent.VK_F11;
		vkMap[88] = KeyEvent.VK_F12;

		vkMap[96] = KeyEvent.VK_INSERT;
		vkMap[97] = KeyEvent.VK_HOME;
		vkMap[98] = KeyEvent.VK_PAGE_UP;
		vkMap[99] = KeyEvent.VK_DIVIDE;
		vkMap[100] = KeyEvent.VK_PRINTSCREEN;
		vkMap[101] = KeyEvent.VK_DELETE;
		vkMap[102] = KeyEvent.VK_END;
		vkMap[103] = KeyEvent.VK_PAGE_DOWN;
		vkMap[104] = KeyEvent.VK_UP;
		vkMap[105] = KeyEvent.VK_SEPARATOR;
		vkMap[111] = KeyEvent.VK_FINAL;
		vkMap[112] = KeyEvent.VK_CONTROL;
		vkMap[113] = KeyEvent.VK_LEFT;
		vkMap[114] = KeyEvent.VK_DOWN;
		vkMap[115] = KeyEvent.VK_RIGHT;
		vkMap[116] = KeyEvent.VK_PAUSE;

		lcharMap[2] = '1';
		lcharMap[3] = '2';
		lcharMap[4] = '3';
		lcharMap[5] = '4';
		lcharMap[6] = '5';
		lcharMap[7] = '6';
		lcharMap[8] = '7';
		lcharMap[9] = '8';
		lcharMap[10] = '9';
		lcharMap[11] = '0';
		lcharMap[12] = '[';
		lcharMap[13] = ']';
		lcharMap[14] = '\b';
		lcharMap[15] = '\t';
		lcharMap[16] = '\'';
		lcharMap[17] = ',';
		lcharMap[18] = '.';
		lcharMap[19] = 'p';
		lcharMap[20] = 'y';
		lcharMap[21] = 'f';
		lcharMap[22] = 'g';
		lcharMap[23] = 'c';
		lcharMap[24] = 'r';
		lcharMap[25] = 'l';
		lcharMap[26] = '/';
		lcharMap[27] = '=';
		lcharMap[28] = '\n';
		lcharMap[30] = 'a';
		lcharMap[31] = 'o';
		lcharMap[32] = 'e';
		lcharMap[33] = 'u';
		lcharMap[34] = 'i';
		lcharMap[35] = 'd';
		lcharMap[36] = 'h';
		lcharMap[37] = 't';
		lcharMap[38] = 'n';
		lcharMap[39] = 's';
		lcharMap[40] = '\'';
		lcharMap[41] = '`';
		lcharMap[43] = '\\';
		lcharMap[44] = ';';
		lcharMap[45] = 'q';
		lcharMap[46] = 'j';
		lcharMap[47] = 'k';
		lcharMap[48] = 'x';
		lcharMap[49] = 'b';
		lcharMap[50] = 'm';
		lcharMap[51] = 'w';
		lcharMap[52] = 'v';
		lcharMap[53] = 'z';
		lcharMap[55] = '*';
		lcharMap[57] = ' ';
		lcharMap[71] = '7';
		lcharMap[72] = '8';
		lcharMap[73] = '9';
		lcharMap[74] = '-';
		lcharMap[75] = '4';
		lcharMap[76] = '5';
		lcharMap[77] = '6';
		lcharMap[78] = '+';
		lcharMap[79] = '1';
		lcharMap[80] = '2';
		lcharMap[81] = '3';
		lcharMap[82] = '0';
		lcharMap[83] = '.';

		ucharMap[2] = '!';
		ucharMap[3] = '@';
		ucharMap[4] = '#';
		ucharMap[5] = '$';
		ucharMap[6] = '%';
		ucharMap[7] = '^';
		ucharMap[8] = '&';
		ucharMap[9] = '*';
		ucharMap[10] = '(';
		ucharMap[11] = ')';
		ucharMap[12] = '_';
		ucharMap[13] = '+';
		ucharMap[14] = '\b';
		ucharMap[15] = '\t';
		ucharMap[16] = '"';
		ucharMap[17] = '<';
		ucharMap[18] = '>';
		ucharMap[19] = 'P';
		ucharMap[20] = 'Y';
		ucharMap[21] = 'F';
		ucharMap[22] = 'G';
		ucharMap[23] = 'C';
		ucharMap[24] = 'R';
		ucharMap[25] = 'L';
		ucharMap[26] = '?';
		ucharMap[27] = '+';
		ucharMap[28] = '\n';
		ucharMap[30] = 'A';
		ucharMap[31] = 'O';
		ucharMap[32] = 'E';
		ucharMap[33] = 'U';
		ucharMap[34] = 'I';
		ucharMap[35] = 'D';
		ucharMap[36] = 'H';
		ucharMap[37] = 'T';
		ucharMap[38] = 'N';
		ucharMap[39] = 'S';
		ucharMap[40] = '_';
		ucharMap[41] = '~';
		ucharMap[43] = '|';
		ucharMap[44] = ':';
		ucharMap[45] = 'Q';
		ucharMap[46] = 'J';
		ucharMap[47] = 'K';
		ucharMap[48] = 'X';
		ucharMap[49] = 'B';
		ucharMap[50] = 'M';
		ucharMap[51] = 'W';
		ucharMap[52] = 'V';
		ucharMap[53] = 'Z';
		ucharMap[55] = '*';
		ucharMap[57] = ' ';
		ucharMap[71] = '7';
		ucharMap[72] = '8';
		ucharMap[73] = '9';
		ucharMap[74] = '-';
		ucharMap[75] = '4';
		ucharMap[76] = '5';
		ucharMap[77] = '6';
		ucharMap[78] = '+';
		ucharMap[79] = '1';
		ucharMap[80] = '2';
		ucharMap[81] = '3';
		ucharMap[82] = '0';
		ucharMap[83] = '.';
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?