|
Хотите узнать код любого символа?
(Remake на Java2)
На этой страничке Вы легко можете это сделать. Для этого достаточно:

|
- один раз щелкнуть мышкой по тому месту странички, где "дремлет" в ожидании Вашего внимания небольшая программка-апплет - см. обведенный черной рамочкой белый прямоугольник слева от этого текстом с надписями "Symbol:" и "Code: 0"
(надеюсь, апплет загрузился удачно и Вы видите все это!)
- теперь просто нажимайте на клавиатуре интересующие Вас символы и смотрите их коды.
|
Примечания.
Внимание! Апплет выдает коды символов в десятичной системе!
Я использовал английские надписи исключительно для того, чтобы не зависеть от всевозможных "чудес русификации".
Поведение апплета при нажатии клавиш с русскими буквами может показаться непонятным. Но это происходит потому, что язык Java хранит тексты в международном стандарте Unicode.
Рассмотрим пример.
Наберем русскую заглавную букву "А". Апплет выдаст в качестве результата десятичное число 1040. Если перевести его в 16-ричную систему (что легко сделать, воспользовавшись например, стандартным калькулятором Windows), то получится 04 10. Первый (старший) байт кода 04 обозначает номер русского языка в стандарте Unicode. Второй (младший), равный 10, есть номер символа на русской страничке. Как можно видеть из таблицы, это как раз и соответствует нашей букве "А".
Ниже приведен для ознакомления текст этого несложного апплета. По сравнению с предыдущей версией, он переписан в соответствии с более поздней реализацией Java 2, где среди многочисленных изменений значится и смена идеологии обработки клавиатуры.
Главные отличия программы в Java 2 (выделены жирным шрифтом):
- используется специальный интерфейс KeyListener;
- для получения кодов символов лучше подходит "новое" событие keyTyped (в Java 1 такого нет);
- keyTyped передает обработчику символ, а не числовой код, причем для его получения требуется применить специальный метод getKeyChar();
- интерфейс требует формального описания всех событий, даже тех, которые мы не собираемся обрабатывать.
При нажатии любой символьной клавиши возникает событие keyTyped, которое передает апплету символ, в нашем случае извлекаемый в переменную keyChar. После этого вызывается метод repaint(), перерисовывающий изображение. Последним действием управляет метод paint(), "рисующий" на экране две строчки текста: в первой отображается сам символ - keyChar, а во второй - полученный из него числовой код (int)keyChar.
//http://educomp.org.ru
//Апплет показывает коды нажатых клавиш
//Java 2
import java.applet.*;
import java.awt.*;
import java.awt.event.*; //библиотека обработки событий
public class keys2 extends Applet implements KeyListener {
char keyChar;
public void init() {
this.addKeyListener(this); //добавим к аплету "слушателя" клавиатуры
}
public void keyTyped(KeyEvent e) {
keyChar = e.getKeyChar();
repaint();
}
//А эти события нам и не надо, но "пустые" обработчики необходимы
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){}
public void paint(Graphics g){
String message="Symbol: "+keyChar;
g.drawString(message,10,20);
message="Code: "+(int)keyChar;
g.drawString(message,10,40);
}
}
|
© Е.А.Еремин, 2008.
|