|
or(int i = 0; i < 5; i++)
{
g.drawLine(10, 30 + (i * 10), 200, 30 + (i * 10));
}
g.copyArea(10, 30, 200, 50, 220, 0);
Для рисования линий мы здесь вызываем метод drawLine.
Далее вызывая метод fillRect после предварительного выбора в контекст
отображения белого цвета мы закрашиваем белым цветом всю нижнюю часть окна
аплета, подготавливая фон для дальнейших упражнений в рисовании:
g.setColor(Color.white);
g.fillRect(1, 80,
dimAppWndDimension.width - 2,
dimAppWndDimension.height - 81);
Ширина и высота закрашиваемой области здесь указана с учетом наличия черной
рамки толщиной в 1 пиксел вокруг окна аплета.
В верхней части полученной таким образом области белого цвета приложение
рисует два прямоугольника черного цвета с трехмерным выделением:
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);
Обратите внимание, что начальный угол сегмента имеет отрицательное значение.
Угол сегмента составляет 320 градусов.
Следующий шаг - создание и рисование многоугольника.
Многоугольник создается как объект класса Polygon. К этому объекту с помощью
метода addPoint мы добавляем несколько точек:
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);
Для того чтобы многоугольник был образован замкнутой ломаной линией, первая
и последняя точки имеют одинаковые координаты.
После подготовки многоугольника он рисуется при помощи метода drawPolygon:
g.drawPolygon(p);
Наш аплет рисует также прямоугольник с закругленными углами, вызыая метод
drawRoundRect:
g.drawRoundRect(10, 250, 200, 100, 60, 40);
Ширина и высота эллипсов закругления составляет, соответственно, 60 и 40
пикселов.
Для демонстрации действия области ограничения вывода мы создаем такую
область, вызывая метод clipRect:
g.clipRect(260, 250, 200, 100);
Затем мы рисуем круг, пересекающий эту область ограничения, в результате
чего будет нарисована только та часть круга, которая находится внутри области
ограничения:
g.fillOval(300, 200, 170, 170);
Приложение FontList
Наше следующее приложение отображает список шрифтов, доступных в системе.
Окно аплета этого приложения, запущенного в среде Microsoft Internet Explorer,
работающего в Microsoft Windows NT версии 4.0, показано на рис. 3.10.
Рис. 3.10. Окно аплета со списком доступных шрифтов
Возможно, этот список покажется вам несколько необычным. В самом деле,
давайте заглянем в папку Fonts, которую можно найти в папке Control Panel.
Беглого взгляда достаточно для того, чтобы убедиться - список шрифтов,
доступных аплету, не совпадает со списком шрифтов, установленных в системе (рис.
3.11).
Рис. 3.11. Список шрифтов, установленных в системе Microsoft Windows NT
Задавая имена шрифтов в конструкторе класса Font, вы должны использовать
имена шрифтов, доступные аплету, а не имена шрифтов, установленных в системе.
Наш аплет FontList извлекает и отображает список доступных для него шрифтов.
Исходный текст приложения
Исходный текст приложения представлен в листинге 3
|
|