⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vt320.java

📁 The Javatm Telnet Application/Applet 很好用的
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        write(TabKey[1], false);      } else {        if (control) {          write(TabKey[2], false);        } else {          if (alt) {            write(TabKey[3], false);          } else {            write(TabKey[0], false);          }        }      }      return;    }    if (alt) {      write("" + ((char) (keyChar | 0x80)));      return;    }    if (((keyCode == KeyEvent.VK_ENTER) || (keyChar == 10))            && !control) {      write("\r", false);      if (localecho) putString("\r\n"); // bad hack      return;    }    if ((keyCode == 10) && !control) {      System.out.println("Sending \\r");      write("\r", false);      return;    }    // FIXME: on german PC keyboards you have to use Alt-Ctrl-q to get an @,    // so we can't just use it here... will probably break some other VMS    // codes.  -Marcus    // if(((!vms && keyChar == '2') || keyChar == '@' || keyChar == ' ')    //    && control)    if (((!vms && keyChar == '2') || keyChar == ' ') && control)      write("" + (char) 0);    if (vms) {      if (keyChar == 127 && !control) {        if (shift)          writeSpecial(Insert[0]);        //  VMS shift delete = insert        else          writeSpecial(Remove[0]);        //  VMS delete = remove        return;      } else if (control)        switch (keyChar) {          case '0':            writeSpecial(Numpad[0]);            return;          case '1':            writeSpecial(Numpad[1]);            return;          case '2':            writeSpecial(Numpad[2]);            return;          case '3':            writeSpecial(Numpad[3]);            return;          case '4':            writeSpecial(Numpad[4]);            return;          case '5':            writeSpecial(Numpad[5]);            return;          case '6':            writeSpecial(Numpad[6]);            return;          case '7':            writeSpecial(Numpad[7]);            return;          case '8':            writeSpecial(Numpad[8]);            return;          case '9':            writeSpecial(Numpad[9]);            return;          case '.':            writeSpecial(KPPeriod);            return;          case '-':          case 31:            writeSpecial(KPMinus);            return;          case '+':            writeSpecial(KPComma);            return;          case 10:            writeSpecial(KPEnter);            return;          case '/':            writeSpecial(PF2);            return;          case '*':            writeSpecial(PF3);            return;            /* NUMLOCK handled in keyPressed */          default:            break;        }      /* Now what does this do and how did it get here. -Marcus      if (shift && keyChar < 32) {        write(PF1+(char)(keyChar + 64));        return;      }      */    }    // FIXME: not used?    String fmap[];    int xind;    xind = 0;    fmap = FunctionKey;    if (shift) {      fmap = FunctionKeyShift;      xind = 1;    }    if (control) {      fmap = FunctionKeyCtrl;      xind = 2;    }    if (alt) {      fmap = FunctionKeyAlt;      xind = 3;    }    if (keyCode == KeyEvent.VK_ESCAPE) {      writeSpecial(Escape[xind]);      return;    }    if ((modifiers & VDUInput.KEY_ACTION) != 0)      switch (keyCode) {        case KeyEvent.VK_NUMPAD0:          writeSpecial(Numpad[0]);          return;        case KeyEvent.VK_NUMPAD1:          writeSpecial(Numpad[1]);          return;        case KeyEvent.VK_NUMPAD2:          writeSpecial(Numpad[2]);          return;        case KeyEvent.VK_NUMPAD3:          writeSpecial(Numpad[3]);          return;        case KeyEvent.VK_NUMPAD4:          writeSpecial(Numpad[4]);          return;        case KeyEvent.VK_NUMPAD5:          writeSpecial(Numpad[5]);          return;        case KeyEvent.VK_NUMPAD6:          writeSpecial(Numpad[6]);          return;        case KeyEvent.VK_NUMPAD7:          writeSpecial(Numpad[7]);          return;        case KeyEvent.VK_NUMPAD8:          writeSpecial(Numpad[8]);          return;        case KeyEvent.VK_NUMPAD9:          writeSpecial(Numpad[9]);          return;        case KeyEvent.VK_DECIMAL:          writeSpecial(NUMDot[xind]);          return;        case KeyEvent.VK_ADD:          writeSpecial(NUMPlus[xind]);          return;      }    if (!((keyChar == 8) || (keyChar == 127) || (keyChar == '\r') || (keyChar == '\n'))) {      write("" + keyChar);      return;    }  }  private void handle_dcs(String dcs) {    System.out.println("DCS: " + dcs);  }  private void handle_osc(String osc) {    System.out.println("OSC: " + osc);  }  private final static char unimap[] = {    //#    //#    Name:     cp437_DOSLatinUS to Unicode table    //#    Unicode version: 1.1    //#    Table version: 1.1    //#    Table format:  Format A    //#    Date:          03/31/95    //#    Authors:       Michel Suignard <michelsu@microsoft.com>    //#                   Lori Hoerth <lorih@microsoft.com>    //#    General notes: none    //#    //#    Format: Three tab-separated columns    //#        Column #1 is the cp1255_WinHebrew code (in hex)    //#        Column #2 is the Unicode (in hex as 0xXXXX)    //#        Column #3 is the Unicode name (follows a comment sign, '#')    //#    //#    The entries are in cp437_DOSLatinUS order    //#    0x0000, // #NULL    0x0001, // #START OF HEADING    0x0002, // #START OF TEXT    0x0003, // #END OF TEXT    0x0004, // #END OF TRANSMISSION    0x0005, // #ENQUIRY    0x0006, // #ACKNOWLEDGE    0x0007, // #BELL    0x0008, // #BACKSPACE    0x0009, // #HORIZONTAL TABULATION    0x000a, // #LINE FEED    0x000b, // #VERTICAL TABULATION    0x000c, // #FORM FEED    0x000d, // #CARRIAGE RETURN    0x000e, // #SHIFT OUT    0x000f, // #SHIFT IN    0x0010, // #DATA LINK ESCAPE    0x0011, // #DEVICE CONTROL ONE    0x0012, // #DEVICE CONTROL TWO    0x0013, // #DEVICE CONTROL THREE    0x0014, // #DEVICE CONTROL FOUR    0x0015, // #NEGATIVE ACKNOWLEDGE    0x0016, // #SYNCHRONOUS IDLE    0x0017, // #END OF TRANSMISSION BLOCK    0x0018, // #CANCEL    0x0019, // #END OF MEDIUM    0x001a, // #SUBSTITUTE    0x001b, // #ESCAPE    0x001c, // #FILE SEPARATOR    0x001d, // #GROUP SEPARATOR    0x001e, // #RECORD SEPARATOR    0x001f, // #UNIT SEPARATOR    0x0020, // #SPACE    0x0021, // #EXCLAMATION MARK    0x0022, // #QUOTATION MARK    0x0023, // #NUMBER SIGN    0x0024, // #DOLLAR SIGN    0x0025, // #PERCENT SIGN    0x0026, // #AMPERSAND    0x0027, // #APOSTROPHE    0x0028, // #LEFT PARENTHESIS    0x0029, // #RIGHT PARENTHESIS    0x002a, // #ASTERISK    0x002b, // #PLUS SIGN    0x002c, // #COMMA    0x002d, // #HYPHEN-MINUS    0x002e, // #FULL STOP    0x002f, // #SOLIDUS    0x0030, // #DIGIT ZERO    0x0031, // #DIGIT ONE    0x0032, // #DIGIT TWO    0x0033, // #DIGIT THREE    0x0034, // #DIGIT FOUR    0x0035, // #DIGIT FIVE    0x0036, // #DIGIT SIX    0x0037, // #DIGIT SEVEN    0x0038, // #DIGIT EIGHT    0x0039, // #DIGIT NINE    0x003a, // #COLON    0x003b, // #SEMICOLON    0x003c, // #LESS-THAN SIGN    0x003d, // #EQUALS SIGN    0x003e, // #GREATER-THAN SIGN    0x003f, // #QUESTION MARK    0x0040, // #COMMERCIAL AT    0x0041, // #LATIN CAPITAL LETTER A    0x0042, // #LATIN CAPITAL LETTER B    0x0043, // #LATIN CAPITAL LETTER C    0x0044, // #LATIN CAPITAL LETTER D    0x0045, // #LATIN CAPITAL LETTER E    0x0046, // #LATIN CAPITAL LETTER F    0x0047, // #LATIN CAPITAL LETTER G    0x0048, // #LATIN CAPITAL LETTER H    0x0049, // #LATIN CAPITAL LETTER I    0x004a, // #LATIN CAPITAL LETTER J    0x004b, // #LATIN CAPITAL LETTER K    0x004c, // #LATIN CAPITAL LETTER L    0x004d, // #LATIN CAPITAL LETTER M    0x004e, // #LATIN CAPITAL LETTER N    0x004f, // #LATIN CAPITAL LETTER O    0x0050, // #LATIN CAPITAL LETTER P    0x0051, // #LATIN CAPITAL LETTER Q    0x0052, // #LATIN CAPITAL LETTER R    0x0053, // #LATIN CAPITAL LETTER S    0x0054, // #LATIN CAPITAL LETTER T    0x0055, // #LATIN CAPITAL LETTER U    0x0056, // #LATIN CAPITAL LETTER V    0x0057, // #LATIN CAPITAL LETTER W    0x0058, // #LATIN CAPITAL LETTER X    0x0059, // #LATIN CAPITAL LETTER Y    0x005a, // #LATIN CAPITAL LETTER Z    0x005b, // #LEFT SQUARE BRACKET    0x005c, // #REVERSE SOLIDUS    0x005d, // #RIGHT SQUARE BRACKET    0x005e, // #CIRCUMFLEX ACCENT    0x005f, // #LOW LINE    0x0060, // #GRAVE ACCENT    0x0061, // #LATIN SMALL LETTER A    0x0062, // #LATIN SMALL LETTER B    0x0063, // #LATIN SMALL LETTER C    0x0064, // #LATIN SMALL LETTER D    0x0065, // #LATIN SMALL LETTER E    0x0066, // #LATIN SMALL LETTER F    0x0067, // #LATIN SMALL LETTER G    0x0068, // #LATIN SMALL LETTER H    0x0069, // #LATIN SMALL LETTER I    0x006a, // #LATIN SMALL LETTER J    0x006b, // #LATIN SMALL LETTER K    0x006c, // #LATIN SMALL LETTER L    0x006d, // #LATIN SMALL LETTER M    0x006e, // #LATIN SMALL LETTER N    0x006f, // #LATIN SMALL LETTER O    0x0070, // #LATIN SMALL LETTER P    0x0071, // #LATIN SMALL LETTER Q    0x0072, // #LATIN SMALL LETTER R    0x0073, // #LATIN SMALL LETTER S    0x0074, // #LATIN SMALL LETTER T    0x0075, // #LATIN SMALL LETTER U    0x0076, // #LATIN SMALL LETTER V    0x0077, // #LATIN SMALL LETTER W    0x0078, // #LATIN SMALL LETTER X    0x0079, // #LATIN SMALL LETTER Y    0x007a, // #LATIN SMALL LETTER Z    0x007b, // #LEFT CURLY BRACKET    0x007c, // #VERTICAL LINE    0x007d, // #RIGHT CURLY BRACKET    0x007e, // #TILDE    0x007f, // #DELETE    0x00c7, // #LATIN CAPITAL LETTER C WITH CEDILLA    0x00fc, // #LATIN SMALL LETTER U WITH DIAERESIS    0x00e9, // #LATIN SMALL LETTER E WITH ACUTE    0x00e2, // #LATIN SMALL LETTER A WITH CIRCUMFLEX    0x00e4, // #LATIN SMALL LETTER A WITH DIAERESIS    0x00e0, // #LATIN SMALL LETTER A WITH GRAVE    0x00e5, // #LATIN SMALL LETTER A WITH RING ABOVE    0x00e7, // #LATIN SMALL LETTER C WITH CEDILLA    0x00ea, // #LATIN SMALL LETTER E WITH CIRCUMFLEX    0x00eb, // #LATIN SMALL LETTER E WITH DIAERESIS    0x00e8, // #LATIN SMALL LETTER E WITH GRAVE    0x00ef, // #LATIN SMALL LETTER I WITH DIAERESIS    0x00ee, // #LATIN SMALL LETTER I WITH CIRCUMFLEX    0x00ec, // #LATIN SMALL LETTER I WITH GRAVE    0x00c4, // #LATIN CAPITAL LETTER A WITH DIAERESIS    0x00c5, // #LATIN CAPITAL LETTER A WITH RING ABOVE    0x00c9, // #LATIN CAPITAL LETTER E WITH ACUTE    0x00e6, // #LATIN SMALL LIGATURE AE    0x00c6, // #LATIN CAPITAL LIGATURE AE    0x00f4, // #LATIN SMALL LETTER O WITH CIRCUMFLEX    0x00f6, // #LATIN SMALL LETTER O WITH DIAERESIS    0x00f2, // #LATIN SMALL LETTER O WITH GRAVE    0x00fb, // #LATIN SMALL LETTER U WITH CIRCUMFLEX    0x00f9, // #LATIN SMALL LETTER U WITH GRAVE    0x00ff, // #LATIN SMALL LETTER Y WITH DIAERESIS    0x00d6, // #LATIN CAPITAL LETTER O WITH DIAERESIS    0x00dc, // #LATIN CAPITAL LETTER U WITH DIAERESIS    0x00a2, // #CENT SIGN    0x00a3, // #POUND SIGN    0x00a5, // #YEN SIGN    0x20a7, // #PESETA SIGN    0x0192, // #LATIN SMALL LETTER F WITH HOOK    0x00e1, // #LATIN SMALL LETTER A WITH ACUTE    0x00ed, // #LATIN SMALL LETTER I WITH ACUTE    0x00f3, // #LATIN SMALL LETTER O WITH ACUTE    0x00fa, // #LATIN SMALL LETTER U WITH ACUTE    0x00f1, // #LATIN SMALL LETTER N WITH TILDE    0x00d1, // #LATIN CAPITAL LETTER N WITH TILDE    0x00aa, // #FEMININE ORDINAL INDICATOR    0x00ba, // #MASCULINE ORDINAL INDICATOR    0x00bf, // #INVERTED QUESTION MARK    0x2310, // #REVERSED NOT SIGN    0x00ac, // #NOT SIGN    0x00bd, // #VULGAR FRACTION ONE HALF    0x00bc, // #VULGAR FRACTION ONE QUARTER    0x00a1, // #INVERTED EXCLAMATION MARK    0x00ab, // #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK    0x00bb, // #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    0x2591, // #LIGHT SHADE    0x2592, // #MEDIUM SHADE    0x2593, // #DARK SHADE    0x2502, // #BOX DRAWINGS LIGHT VERTICAL    0x2524, // #BOX DRAWINGS LIGHT VERTICAL AND LEFT    0x2561, // #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE    0x2562, // #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE    0x2556, // #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE    0x2555, // #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE    0x2563, // #BOX DRAWINGS DOUBLE VERTICAL AND LEFT    0x2551, // #BOX DRAWINGS DOUBLE VERTICAL    0x2557, // #BOX DRAWINGS DOUBLE DOWN AND LEFT    0x255d, // #BOX DRAWINGS DOUBLE UP AND LEFT    0x255c, // #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE    0x255b, // #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE    0x2510, // #BOX DRAWINGS LIGHT DOWN AND LEFT    0x2514, // #BOX DRAWINGS LIGHT UP AND RIGHT    0x2534, // #BOX DRAWINGS LIGHT UP AND HORIZONTAL    0x252c, // #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL    0x251c, // #BOX DRAWINGS LIGHT VERTICAL AND RIGHT    0x2500, // #BOX DRAWINGS LIGHT HORIZONTAL    0x253c, // #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL    0x255e, // #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE    0x255f, // #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE

⌨️ 快捷键说明

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