Microsoft Visual J++. Создание приложений и аплетов на языке Java

Исходные тексты приложения KeyCode


Файл исходного текста приложения KeyCode приведен в листинге 4.5.

Листинг 4.5. Файл KeyCode\KeyCode.java

// =========================================================

// Просмотр кодов клавиш

//

// (C) Фролов А.В, 1997

//

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//            или

//         http://www.dials.ccas.ru/frolov

// =========================================================

import java.applet.*;



import java.awt.*;

public class KeyCode extends Applet

{

  // Высота символов текущего шрифта

  int yHeight;

  // Текущие размеры окна аплета

  Dimension dimAppWndDimension;

  // -------------------------------------------------------

  // getAppletInfo

  // Метод, возвращающей строку информации об аплете

  // -------------------------------------------------------

  public String getAppletInfo()

  {

    return "Name: KeyCode\r\n" +

       "Author: Alexandr Frolov\r\n" +

       "WWW:    http://www.glasnet.ru/~frolov" +

       "Author: Alexandr Frolov\r\n" +

       "Created with Microsoft Visual J++ Version 1.0";

  }

  // -------------------------------------------------------

  // init

  // Метод, получающий управление при инициализации аплета

  // -------------------------------------------------------

  public void init()

  {

    // Получаем контекст отображения

    Graphics g = getGraphics();

    // Определяем метрики текущего шрифта

    FontMetrics fm = g.getFontMetrics();

    // Сохраняем полную высоту символов шрифта

    yHeight = fm.getHeight();

  }

  // -------------------------------------------------------

  // paint

  // Метод paint, выполняющий рисование в окне аплета

  // -------------------------------------------------------

  public void paint(Graphics g)

  {

    // Определяем текущие размеры окна аплета

    dimAppWndDimension = size();

   

    // Выбираем в контекст отображения желтый цвет


    g.setColor(Color.yellow);

   

    // Закрашиваем внутреннюю область окна аплета

    g.fillRect(0, 0,

      dimAppWndDimension.width  - 1,

      dimAppWndDimension.height - 1);

    // Выбираем в контекст отображения черный цвет

    g.setColor(Color.black);

    // Рисуем рамку вокруг окна аплета

    g.drawRect(0, 0,

      dimAppWndDimension.width  - 1,

      dimAppWndDimension.height - 1);

  }

  // -------------------------------------------------------

  // keyDown

  // Вызывается, когда пользователь нажимает на клавишу

  // -------------------------------------------------------

  public boolean keyDown(Event evt, int nKey)

  {

    // Массив для преобразования кода символа в сивол

    char[] chKey;

   

    // Временная строка

    String s;

    // Создаем массив из одного элемента

    chKey = new char[1];

    // Записыаем в него код нажатой клавиши

    chKey[0] = (char)nKey;

   

    // Преобразуем в строку

    s = new String(chKey);

   

    // Получаем контекст отображения

    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);

    return true;

  }

  // -------------------------------------------------------

  // keyUp

  // Вызывается, когда пользователь отпускает клавишу

  // -------------------------------------------------------

  public boolean keyUp(Event evt, int nKey)

  {

    // Получаем контекст отображения

    Graphics g = getGraphics();

    // Выполняем свертку нижней области окна

    g.copyArea(0, 1,

      dimAppWndDimension.width  - 1,

      dimAppWndDimension.height - yHeight - 5,

      0, yHeight + 1);

    // Закрашиваем область ввода желтым цветом

    g.setColor(Color.yellow);

    g.fillRect(1, 1,

      dimAppWndDimension.width  - 2, yHeight + 1);

    return true;

  }

}

В листинге 4.6 вы найдете исходный текст документа HTML, в который встроен наш аплет.

Листинг 4.6. Файл KeyCode\KeyCode.html

<html>

<head>

<title>KeyCode</title>

</head>

<body>

<hr>

<applet

    code=KeyCode.class

    id=KeyCode

    width=320

    height=240 >

</applet>

<hr>

<a href="KeyCode.java">The source.</a>

</body>

</html>


Содержание раздела