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


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


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

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

{

  // Текущие координаты курсора при нажатии на

  // кнопку мыши

  Dimension dimMouseCursor;

  // Временная переменная для хранения события

  Event ev;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: MouseClick\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";

  }

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

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


Исходный текст аплета LineDraw приведен в листинге 4.3.

Листинг 4.3. Файл LineDraw\LineDraw.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.*;

// Добавляем для класса Vector

import java.util.*;

public class LineDraw extends Applet

{

  // Координаты курсора при нажатии кнопки мыши

  Dimension dmDown;

  // Координаты курсора при отжатии кнопки мыши

  Dimension dmUp;

  // Предыдущие координаты конца линии

  Dimension dmPrev;

 

  // Признак включения режима рисования

  boolean bDrawing;

  // Массив координат линий

  Vector lines;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: LineDraw\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()

  {

    // Сброс признака рисования

    bDrawing = false;

    // Создание массива для хранения координат линий

    lines = new Vector();

  }

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

  // paint

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

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

  public void paint(Graphics g)




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

Листинг 5.7. Файл ListBox\ListBox.java

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

// Списки типа List Box

//

// (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 ListBox extends Applet

{

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

  List chBackgroundColor;

  List chForegroundColor;

  // Строки для хранения названий выбираемого цвета

  String sSelBackground = new String("Yellow");

  String sSelForeground = new String("Black");

 

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: ListBox\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

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

    // цвета изображения

    chBackgroundColor = new List(6, false);

    chForegroundColor = new List(4, false);

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

    add(chBackgroundColor);

    add(chForegroundColor);

    // Заполняем список цвета фона

    chBackgroundColor.addItem("Yellow");

    chBackgroundColor.addItem("Green");

    chBackgroundColor.addItem("White");

    chBackgroundColor.addItem("Black");




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

Листинг 5.9. Файл TextLabel\TextLabel.java

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

// Работа с компонентами Label

//

// (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 TextLabel extends Applet

{

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

  Label lbTextLabel;

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

  Button btnLeft;

  Button btnCenter;

  Button btnRight;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: TextLabel\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

    // Создаем компоненту Label

    lbTextLabel = new Label("Выберите выравнивание");

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

    btnLeft   = new Button("Влево");

    btnCenter = new Button("Центровка");

    btnRight  = new Button("Вправо");

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

    add(btnLeft);

    add(btnCenter);

    add(btnRight);

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

    add(lbTextLabel);

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

    setBackground(Color.yellow);

}

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




Исходные тексты приложения TxtField представлены в листинге 5.11.

Листинг 5.11. Файл TxtField\TxtField.java

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

// Однострочное текстовое поле класса TextField

//

// (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 TxtField extends Applet

{

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

  TextField txt;

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

  Button btnGetText;

  // Строка для хранения введенных данных

  String str;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: TxtField\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

    // Создаем редактируемое однострочное текстовое поле

    txt = new TextField("Введите строку текста", 35);

    // Создаем кнопку, с помощью которой можно получить

    // содержимое текстового поля

    btnGetText = new Button("Получить строку");

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

    add(txt);

   

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

    add(btnGetText);

    // Получаем и сохраняем текущий текст,

    // установленный в поле

    str = txt.getText();




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

Листинг 5.13. Файл TextEdit\TextEdit.java

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

// Многострочное текстовое поле класса TextArea

//

// (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 TextEdit extends Applet

{

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

  TextArea txt;

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

  Button btnGetText;

  Button btnGetSelectedText;

  String str;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: TextEdit\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

    // Создаем редактируемое многострочное текстовое поле

    txt = new TextArea("Введите строку текста", 5, 35);

    // Создаем кнопку, с помощью которой можно получить

    // полное содержимое текстового поля

    btnGetText = new Button("Получить все");

    // Создаем кнопку, с помощью которой можно получить

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

    btnGetSelectedText = new Button("Получить выделенное");

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

    add(txt);




Исходный текст аплета Grid приведен в листинге 6.1.

Листинг 6.1. Файл Grid\Grid.java

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

// Режим компоновки GridLayout

//

// (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 Grid extends Applet

{

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

  Button btn1;

  Button btn2;

  Button btn3;

  Button btn4;

  Button btn5;

  Button btn6;

  Button btn7;

  Button btn8;

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

  String sTextLabel;

      

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: Grid\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

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

    setBackground(Color.yellow);

    // Создаем кнопки

    btn1 = new Button("Button 1");

    btn2 = new Button("Button 2");

    btn3 = new Button("Button 3");

    btn4 = new Button("Button 4");

    btn5 = new Button("Button 5");

    btn6 = new Button("Button 6");

    btn7 = new Button("Button 7");

    btn8 = new Button("Button 8");

    // Устанавливаем режим GridLayout   




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

Листинг 6.3. Файл Border\Border.java

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

// Режим компоновки BorderLayout

//

// (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 Border extends Applet

{

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

  Button btn1;

  Button btn2;

  Button btn3;

  Button btn4;

  Button btn5;

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

  String sTextLabel;

      

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: Grid\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

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

    setBackground(Color.yellow);

    // Создаем кнопки

    btn1 = new Button("Button North");

    btn2 = new Button("Button East");

    btn3 = new Button("Button West");

    btn4 = new Button("Button South");

    btn5 = new Button("Button Center");

    // Устанавливаем режим GridLayout   

    setLayout(new BorderLayout());

   

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

    add("North",  btn1);

    add("East",   btn2);




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

Листинг 7.1. Файл PanelDemo\PanelDemo.java

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

// Работа с панелями класса Panel

//

// (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 PanelDemo extends Applet

{

  // Панель для размещения блокнота

  Panel pCardPanel;

  // Панель для размещения кнопок управления блокнотом

  Panel pButtonPanel;

 

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

  Button btn1;

  Button btn2;

  Button btn3;

  Button btn4;

  Button btn5;

  Button btnNext;

  Button btnPrev;

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

  String sTextLabel;

      

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: Grid\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

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

    setBackground(Color.yellow);

    // Создаем в окне аплета две панели, разделяющие

    // окно по горизонтали. В верхней панели будет

    // находиться блокнот,

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

    setLayout(new GridLayout(2, 1));

      

    // Создаем кнопки блокнота




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

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

{

  // Панель для размещения блокнота

  Panel pCardPanel;

  // Панель для размещения кнопок управления блокнотом

  Panel pButtonPanel;

  // Панель для рисования

  Panel pDraw;

  // Панели отдельных страниц

  Panel pBackgroundColor;    // страница выбора цвета фона

  Panel pForegroundColor;    // страница выбора цвета

                             //    изображения

  Panel pFont;               // страница выбора шрифта

 

  // Кнопки выбора сраниц блокнота

  Button btnNext;            // следующая

  Button btnPrev;            // предыдущая

  Button btnBackgroundColor; // фон

  Button btnForegroundColor; // изображение

  Button btnFont;            // шрифт

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

  Choice chBackgroundColor;  // список цветов фона

  Choice chForegroundColor;  // список цветов изображения

  Choice chFont;             // список шрифтов

  // Текстовые метки списков

  Label tBackgroundColor;    // метка списка цветов фона

  Label tForegroundColor;    // метка списка цветов

                             //   изображения

  Label tFont;               // метка списка шрифтов

  // Строка для хранения название выбранного шрифта

  String sFontName;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {




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

Листинг 7.5. Файл Panel2\Panel2.java

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

// Работа с панелями класса Panel

// Наследование от класса Panel

//

// (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.*;

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

// Класс Panel2

// Это наш аплет

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

public class Panel2 extends Applet

{

  // Первая панель

  FirstPanel pPanel1;

  // Вторая панель

  SecondPanel pPanel2;

 

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: Panel2\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

    // Создаем в окне аплета две панели, разделяющие

    // окно по горизонтали

    setLayout(new GridLayout(2, 1));

      

    // Создаем первую панель

    pPanel1 = new FirstPanel();

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

    add(pPanel1);

    // Создаем вторую панель

    pPanel2 = new SecondPanel();

    // Добавляем вторую панель

    add(pPanel2);

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

    pPanel1.setBackground(Color.yellow);




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

Листинг 8.1. Файл FrameWnd\FrameWnd.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.*;

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

// Класс FrameWnd

// Это наш аплет

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

public class FrameWnd extends Applet

{

  // Окно, которое будет возникать из аплета

  MainFrameWnd fMainFrame;

 

  // Кнопка для отображения окна fMainFrame

  Button btnShowFrame;

  // Кнопка для удаления окна fMainFrame

  Button btnHideFrame;

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

    return "Name: FrameWnd\r\n" +

      "Author: Alexandr Frolov\r\n" +

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

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

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

  }

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

  // init

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

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

  public void init()

  {

    // Создаем новое окно на базе класса MainFrameWnd

    fMainFrame = new MainFrameWnd("Main Frame Window");

    // Создаем кнопку для отображения этого окна

    btnShowFrame = new Button("Show Frame Window");

   

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

    add(btnShowFrame);

   

    // Создаем кнопку для удаления окна fMainFrame



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