|
го класса.
Поля класса KeyCode
Поле yHeight используется для хранения полной высоты символов текущего
шрифта, выбранного в контекст отображения окна аплета. Эта величина нужна для
определения шага свертки окна.
В поле dimAppWndDimension типа Dimension хранятся текущие размеры окна
аплета.
Метод getAppletInfo
Метод getAppletInfo возвращает информацию об аплете и не имеет никаких
особенностей.
Метод init
Этот метод получает контекст отображения, однако не для рисования, а для
определения метрик шрифта:
Graphics g = getGraphics();
FontMetrics fm = g.getFontMetrics();
В переменную yHeight заносится полная высота символов текущего шрифта:
yHeight = fm.getHeight();
Метод paint
Метод paint закрашивает окно аплета желтым цветом и обводит его рамкой.
Никакой другой работы этот метод не выполняет.
Метод keyDown
Когда пользователь нажимает клавишу, управление передается методу keyDown.
Обработчик метода keyDown преобразует код нажатой клавиши nKey в текстовую
строку типа String и затем отображает эту строку и содержимое двух полей
объекта evt в окне аплета.
Преобразование выполняется в два приема.
Вначале код символа, имеющий тип int, преобразуется к типу char и
записывается в ячейку массива типа char[], как это показано ниже:
char[] chKey;
String s;
chKey = new char[1];
chKey[0] = (char)nKey;
Затем этот массив, состоящий только из одного элемента, преобразуется в
текстовую строку:
s = new String(chKey);
Далее метод ketDown получает контекст отображения, устанавливает в нем
черный цвет и рисует в верхней части окна параметры клавиатурного события:
Graphics g = getGraphics();
g.setColor(Color.black);
g.drawString(s + " ", 10, 10);
g.drawString(" -> key: " + evt.key, 20, 10);
g.drawString(" mod: " + evt.modifiers, 100, 10);
Метод keyUp
Метод keyUp получает управление, когда пользователь отпускает ранее нажатую
клавишу. Ему передаются те же параметры, что и только что рассмотренному методу
keyDown.
Наш метод keyUp получает контекст отображения, а затем выполняет копирование
верхней части окна, сдвигая ее вниз на размер символов текущего шрифта:
g.copyArea(0, 1,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - yHeight - 5,
0, yHeight + 1);
После сдвига метод закрашивает область ввода, расположенную в верхней части
аплета, желтым цветом, расчищ
|
|