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


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


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

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

{

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

  Checkbox chbox1;

  Checkbox chbox2;

  Checkbox chbox3;

 

  // Создаем ссылку на объект типа CheckboxGroup

  CheckboxGroup grModeGroup;

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

  Checkbox rdbox1;

  Checkbox rdbox2;

  Checkbox rdbox3;

  Checkbox rdbox4;

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

  Button btnGet;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: CheckBoxes\r\n" +

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

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

      "Author: Alexandr Frolov\r\n" +

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

  }

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

  // init

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

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

  public void init()

  {

    // Устанавливаем желтый цвет фона

    setBackground(Color.yellow);

   

    // Создаем три переключателя с независимой фиксацией

    chbox1 = new Checkbox("Switch 1");

    chbox2 = new Checkbox("Switch 2");

    chbox3 = new Checkbox("Switch 3");

   

    // Создаем группу переключателей с зависимой фиксацией


    grModeGroup = new CheckboxGroup();

   

    // Создаем четыре переключателя с зависимой фиксацией,

    // принадлежащие группе grModeGroup

    rdbox1 = new Checkbox("Mode 1",grModeGroup, true);

    rdbox2 = new Checkbox("Mode 2",grModeGroup, false);

    rdbox3 = new Checkbox("Mode 3",grModeGroup, false);

    rdbox4 = new Checkbox("Mode 4",grModeGroup, false);

    // Создаем кнопку, предназначенную для определения

    // текущего состояния переключателей

    btnGet = new Button("Get CheckBoxes state");

    // Добавляем в окно аплета четыре переключателя

    // с зависимой фиксацией

    add(rdbox1);

    add(rdbox2);

    add(rdbox3);

    add(rdbox4);

    // Добавляем в окно аплета три переключателя

    // с независимой фиксацией

    add(chbox1);

    add(chbox2);

    add(chbox3);

    // Добавляем в окно аплета кнопку

    add(btnGet);

  }

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

  // action

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

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

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

  public boolean action(Event evt, Object obj)

  {

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

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

    if(evt.target instanceof Button)

    {

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

      if(evt.target.equals(btnGet))

      {

        showStatus("Button 1 pressed");

      }

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

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

      else

      {

        return false;

      }

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

      repaint();

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

      return true;

    }

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

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

    return false;

  }

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

  // paint



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

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

  public void paint(Graphics g)

  {

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

    Dimension dimAppWndDimension = size();

   

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

    g.setColor(Color.black);

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

    g.drawRect(0, 0,

      dimAppWndDimension.width  - 1,

      dimAppWndDimension.height - 1);

    // Строка для записи списка

    // состояния переключателей

    String s = new String("> ");

    // Проверяем переключатели с независимой фиксацией

    if(chbox1.getState())

      s = s + chbox1.getLabel() + ", ";

   

    if(chbox2.getState())

      s = s + chbox2.getLabel() + ", ";

   

    if(chbox3.getState())

      s = s + chbox3.getLabel() + ", ";

   

    if(rdbox1.getState())

      s = s + rdbox1.getLabel();

    // Проверяем переключатели с зависимой фиксацией

    else if(rdbox2.getState())

      s = s + rdbox2.getLabel();

    else if(rdbox3.getState())

      s = s + rdbox3.getLabel();

    else if(rdbox4.getState())

      s = s + rdbox4.getLabel();

    // Рисуем строку состояния переключателей

    g.drawString(s, 10, 150);

  }

}

В листинге 5. 4 вы найдете исходный текст документа HTML, который был создан системой Java Applet Wizard для нашего аплета.

Листинг 5.4. Файл CheckBoxes\CheckBoxes.html

<html>

<head>

<title>CheckBoxes</title>

</head>

<body>

<hr>

<applet

    code=CheckBoxes.class

    id=CheckBoxes

    width=320

    height=240 >

</applet>

<hr>

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

</body>

</html>


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