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

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


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

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

{

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

  // Поля класса.

  // Создаются автоматически для всех параметров аплета

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

  private String m_Str1 = "Hello 1";

  private String m_Str2 = "Hello 2";

  private String m_Str3 = "Hello 3";

  private String m_Str4 = "Hello 4";

  private String m_Str5 = "Hello 5";

  private String m_Font1 = "Arial";

  private String m_Font2 = "Courier";

  private String m_Font3 = "Times";

  private String m_Font4 = "Helvetica";

  private String m_Font5 = "Undefined";

  private String m_Type1 = "Bold";

  private String m_Type2 = "Italic";

  private String m_Type3 = "Plain";

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

  // Имена параметров

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

  private final String PARAM_Str1 = "Str1";

  private final String PARAM_Str2 = "Str2";

  private final String PARAM_Str3 = "Str3";

  private final String PARAM_Str4 = "Str4";

  private final String PARAM_Str5 = "Str5";

  private final String PARAM_Font1 = "Font1";

  private final String PARAM_Font2 = "Font2";

  private final String PARAM_Font3 = "Font3";


  private final String PARAM_Font4 = "Font4";

  private final String PARAM_Font5 = "Font5";

  private final String PARAM_Type1 = "Type1";

  private final String PARAM_Type2 = "Type2";

  private final String PARAM_Type3 = "Type3";

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

  // getAppletInfo

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

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

  public String getAppletInfo()

  {

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

  }

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

  // getParameterInfo

  // Метод, возвращающий описание параметров

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

  public String[][] getParameterInfo()

  {

    String[][] info =

      {

        { PARAM_Str1, "String", "Text string to write" },

        { PARAM_Str2, "String", "Text string to write" },

        { PARAM_Str3, "String", "Text string to write" },

        { PARAM_Str4, "String", "Text string to write" },

        { PARAM_Str5, "String", "Text string to write" },

        { PARAM_Font1, "String", "Text font" },

        { PARAM_Font2, "String", "Text font" },

        { PARAM_Font3, "String", "Text font" },

        { PARAM_Font4, "String", "Text font" },

        { PARAM_Font5, "String", "Text font" },

        { PARAM_Type1, "String", "Font type" },

        { PARAM_Type2, "String", "Font type" },

        { PARAM_Type3, "String", "Font type" },



      };

    return info;          

  }

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

  // init

  // Вызывается во время инициализации аплета

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

  public void init()

  {

    // Рабочая переменная для получения параметров

    String param;

    // Получение параметров и сохранение

    // их значений в полях класса

    // Строки, которые будут выведены в окно аплета

    param = getParameter(PARAM_Str1);

    if (param != null)

      m_Str1 = param;

    param = getParameter(PARAM_Str2);

    if (param != null)

      m_Str2 = param;

    param = getParameter(PARAM_Str3);

    if (param != null)

      m_Str3 = param;

    param = getParameter(PARAM_Str4);

    if (param != null)

      m_Str4 = param;

    param = getParameter(PARAM_Str5);

    if (param != null)

      m_Str5 = param;

    // Шрифты для отображения строк

    param = getParameter(PARAM_Font1);

    if (param != null)

      m_Font1 = param;

    param = getParameter(PARAM_Font2);

    if (param != null)

      m_Font2 = param;

    param = getParameter(PARAM_Font3);

    if (param != null)

      m_Font3 = param;

    param = getParameter(PARAM_Font4);

    if (param != null)

      m_Font4 = param;

    param = getParameter(PARAM_Font5);

    if (param != null)

      m_Font5 = param;

    // Начертание шрифтов

    param = getParameter(PARAM_Type1);

    if (param != null)

      m_Type1 = param;

    param = getParameter(PARAM_Type2);

    if (param != null)

      m_Type2 = param;

    param = getParameter(PARAM_Type3);

    if (param != null)

      m_Type3 = param;

  }

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

  // paint

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

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

  public void paint(Graphics g)



  {

    // Начальная координата для вывода по вертикали

    int yStart   = 20;

    // Текущая координата для вывода строки

    int yCurrent = 20;

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

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

    // Получаем стиль шрифта и выбираем шрифт

    // в соответствии с этим стилем

    if(m_Type1.equals("Bold"))

      g.setFont(new Font(m_Font1, Font.BOLD, 25));

    else if(m_Type1.equals("Italic"))

      g.setFont(new Font(m_Font1, Font.ITALIC, 25));

    else if(m_Type1.equals("Plain"))

      g.setFont(new Font(m_Font1, Font.PLAIN, 25));

    // Отступ для первой строки

    yCurrent += yStart;

    // Рисуем первую строку

    g.drawString(m_Str1, 10, yCurrent);

    // Определяем метрики шрифта

    FontMetrics fm = g.getFontMetrics();

    // Устанавливаем новую текущую позицию для

    // вывода очередной строки

    yCurrent += fm.getHeight();

    // Выбираем шрифт в контекст отображения

    if(m_Type1.equals("Bold"))

      g.setFont(new Font(m_Font2, Font.BOLD, 25));

    else if(m_Type1.equals("Italic"))

      g.setFont(new Font(m_Font2, Font.ITALIC, 25));

    else if(m_Type1.equals("Plain"))

      g.setFont(new Font(m_Font2, Font.PLAIN, 25));

    // Рисуем вторую строку

    g.drawString(m_Str2, 10, yCurrent);

    // Устанавливаем новую текущую позицию для

    // вывода очередной строки



    fm = g.getFontMetrics();

    yCurrent += fm.getHeight();

    // Выбираем шрифт в контекст отображения

    if(m_Type2.equals("Bold"))

      g.setFont(new Font(m_Font3, Font.BOLD, 25));

    else if(m_Type2.equals("Italic"))

      g.setFont(new Font(m_Font3, Font.ITALIC, 25));

    else if(m_Type2.equals("Plain"))

      g.setFont(new Font(m_Font3, Font.PLAIN, 25));

    // Рисуем третью строку

    g.drawString(m_Str3, 10, yCurrent);

    // Устанавливаем новую текущую позицию для

    // вывода очередной строки

    fm = g.getFontMetrics();

    yCurrent += fm.getHeight();

    // Выбираем шрифт в контекст отображения

    if(m_Type2.equals("Bold"))

      g.setFont(new Font(m_Font4, Font.BOLD, 25));

    else if(m_Type2.equals("Italic"))

      g.setFont(new Font(m_Font4, Font.ITALIC, 25));

    else if(m_Type2.equals("Plain"))

      g.setFont(new Font(m_Font4, Font.PLAIN, 25));

    // Рисуем четвертую строку

    g.drawString(m_Str4, 10, yCurrent);

    // Устанавливаем новую текущую позицию для

    // вывода очередной строки

    fm = g.getFontMetrics();

    yCurrent += fm.getHeight();

    // Выбираем шрифт в контекст отображения

    if(m_Type3.equals("Bold"))

      g.setFont(new Font(m_Font5, Font.BOLD, 25));

    else if(m_Type3.equals("Italic"))

      g.setFont(new Font(m_Font5, Font.ITALIC, 25));

    else if(m_Type3.equals("Plain"))

      g.setFont(new Font(m_Font5, Font.PLAIN, 25));

    // Рисуем пятую строку

    g.drawString(m_Str5, 10, yCurrent);

  }

}

Исходный текст документа HTML, в который встроен аплет TextOut, приведен в листинге 3.6.

Листинг 3.6. Файл TextOut\TextOut.html

<html>

<head>

<title>TextOut</title>

</head>

<body>

<hr>

<applet

    code=TextOut.class

    id=TextOut

    width=320

    height=240 >

    <param name=Str1 value="Hello 1">

    <param name=Str2 value="Hello 2">

    <param name=Str3 value="Hello 3">

    <param name=Str4 value="Hello 4">

    <param name=Str5 value="Hello 5">

    <param name=Font1 value="Dialog">

    <param name=Font2 value="Courier">

    <param name=Font3 value="TimesRoman">

    <param name=Font4 value="Helvetica">

    <param name=Font5 value="Undefined">

    <param name=Type1 value="Bold">

    <param name=Type2 value="Italic">

    <param name=Type3 value="Plain">

</applet>

<hr>

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

</body>

</html>


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