Исходные файлы приложения Painter
В листинге 3.1 мы привели исходный текст аплета Painter.
Листинг 3.1. Файл Painter\Painter.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 Painter extends Applet
{
// -------------------------------------------------------
// Painter
// Конструктор не используется
// -------------------------------------------------------
public Painter()
{
}
// -------------------------------------------------------
// getAppletInfo
// Метод, возвращающей строку информации об аплете
// -------------------------------------------------------
public String getAppletInfo()
{
return "Name: Painter\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()
{
// Для того чтобы размеры окна аплета можно было
// задавать в документе HTML, закрываем следующую
// строку символом комментария
// resize(320, 240);
}
// -------------------------------------------------------
// destroy
// Метод destroy не используется
// -------------------------------------------------------
public void destroy()
{
}
// -------------------------------------------------------
// paint
// Метод paint, выполняющий рисование в окне аплета
// -------------------------------------------------------
public void paint(Graphics g)
{
// Определяем текущие размеры окна аплета
Dimension dimAppWndDimension = size();
// Эта строка будет удалена из окна аплета
// методом clearRect
g.drawString("Невидимая строка", 10, 20);
// Стираем содержимое окна аплета. Цвет окна
// становится таким же, как и цвет фона
// окна навигатора
g.clearRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
// Выбираем в контекст отображения желтый цвет
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("Привет из аплета!", 10, 20);
// Рисуем в цикле пять горизонтальных линий
for(int i = 0; i < 5; i++)
{
g.drawLine(10, 30 + (i * 10), 200, 30 + (i * 10));
}
// Копируем область окна, занятую
// нарисованными линиями
g.copyArea(10, 30, 200, 50, 220, 0);
// Выбираем в контекст отображения белый цвет
g.setColor(Color.white);
// Закрашиваем белвым цветом нижнюю часть окна
g.fillRect(1, 80,
dimAppWndDimension.width - 2,
dimAppWndDimension.height - 81);
// Выбираем в контекст отображения черный цвет
g.setColor(Color.black);
// Рисуем два трехмерных прямоугольника
g.draw3DRect(10, 100, 100, 20, true);
g.draw3DRect(120, 100, 100, 20, false);
// Выбираем в контекст отображения красный цвет
g.setColor(Color.red);
// Рисуем рамку, в которую будет вписан сегмент
g.drawRect(10, 140, 200, 100);
g.drawLine(10, 190, 210, 190);
g.drawLine(110, 140, 110, 240);
// Выбираем в контекст отображения черный цвет
g.setColor(Color.black);
// Рисуем сегмент
g.drawArc(10, 140, 200, 100, -25, 320);
// Создаем многоугольник
Polygon p = new Polygon();
// Добавляем в многоугольник несколько вершин
p.addPoint(270, 239);
p.addPoint(350, 230);
p.addPoint(360, 180);
p.addPoint(390, 160);
p.addPoint(340, 130);
p.addPoint(270, 239);
// Рисуем многоугольник
g.drawPolygon(p);
// Рисуем прямоугольник с закругленными углами
g.drawRoundRect(10, 250, 200, 100, 60, 40);
// Выбираем в контекст отображения красный цвет
g.setColor(Color.red);
// Задаем область ограничения вывода
g.clipRect(260, 250, 200, 100);
// Рисуем круг, пересекающий область ограничения
g.fillOval(300, 200, 170, 170);
}
// -------------------------------------------------------
// start
// Метод start не используется
// -------------------------------------------------------
public void start()
{
}
// -------------------------------------------------------
// stop
// Метод stop не используется
// -------------------------------------------------------
public void stop()
{
}
}
Листинг 3. 2 содержит исходный текст документа HTML, в который встроен данный аплет.
Листинг 3.2. Файл Painter\Painter.html
<html>
<head>
<title>Painter</title>
</head>
<body>
<hr>
<applet
code=Painter.class
id=Painter
width=500
height=400>
</applet>
<hr>
<a href="Painter.java">The source.</a>
</body>
</html>
Мы внесли небольшие изменения в файл Painter.html, подготовленный системой Java Applet Wizard. Эти изменения заключаются в увеличении размеров окна аплета, задаваемых параметрами WIDTH и HEIGHT оператора <APPLET>.