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

         

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


Исходный текст приложения ButtonPress приведен в листинге 5.1.

Листинг 5.1. Файл ButtonPress\ButtonPress.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 ButtonPress extends Applet

{



  // Создаем четыре ссылки на объекты типа Button

  Button btn1;

  Button btn2;

  Button btn3;

  Button btn4;

  // Строка для записи названия нажатой кнопки

  String sTextLabel;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: ButtonPress\r\n" +

      "E-mail: frolov@glas.apc.org" +

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

      "Author: Alexandr Frolov\r\n" +

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

  }

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

  // init

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

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

  public void init()

  {

    // Создаем четыре кнопки

    btn1 = new Button("Button 1");

    btn2 = new Button("Button 2");

    btn3 = new Button("Button 3");

    btn4 = new Button("Button 4");

    // Добавляем кнопки в контейнер, которым является

    // окно аплета

    add(btn1);

    add(btn2);

    add(btn3);

    add(btn4);

    // Название кнопки, нажатой в последний раз

    sTextLabel = new String("");

  }

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

  // action


  // Метод вызывается, когда пользователь выполняет

  // действие над компонентами

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

  public boolean action(Event evt, Object obj)

  {

    // Ссылка на кнопку, от которой пришло сообщение

    Button btn;

    // Проверяем, что событие вызвано кнопкой, а не

    // другим компонентом

    if(evt.target instanceof Button)

    {

      // Получам ссылку на кнопку, вызвавшую событие

      btn = (Button)evt.target;

      // Получаем название кнопки

      sTextLabel = btn.getLabel();

      // Выполняем ветвление по кнопкам. Для каждой кнопки

      // записываем ее название

      // в строку состояния навигатора

      if(evt.target.equals(btn1))

      {

        showStatus(

          "Button 1 (\"" + sTextLabel + "\") pressed");

      }

      else if(evt.target.equals(btn2))

      {

        showStatus(

          "Button 2 (\"" + sTextLabel + "\") pressed");

      }

      else if(evt.target.equals(btn3))

      {

        showStatus(

           "Button 3 (\"" + sTextLabel + "\") pressed");

      }

     

      else if(evt.target.equals(btn4))

      {

        showStatus(

           "Button 4 (\"" + sTextLabel + "\") pressed");

      }

      // Если событие возникло от неизвестной кнопки,

      // мы его не обрабатываем

      else

      {

        return false;

      }

      // Перерисовываем окно аплета

      repaint();

      // возвращаем признак того, что мы обработали событие

      return true;

    }

    // Если событие вызвано не кнопкой,

    // мы его не обрабатываем

    return false;

  }

     

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

  // paint

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

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



  public void paint(Graphics g)

  {

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

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

    // Рисуем название нажатой кнопки

    g.drawString("Button (\"" + sTextLabel + "\") pressed",

      10, 70);

  }

}

Исходный текст документа HTML, созданный для аплета ButtonPress, представлен в листинге 5.2.

Листинг 5.2. Файл ButtonPress\ButtonPress.html

<html>

<head>

<title>ButtonPress</title>

</head>

<body>

<hr>

<applet

    code=ButtonPress.class

    id=ButtonPress

    width=320

    height=240 >

</applet>

<hr>

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

</body>

</html>


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