При использовании Java можно выбрать тот же самый подход, что и в случае с Flash_модулем: создать апплет с именем «Canvas», не имеющий собственного поведения и существующий лишь для экспорта прикладного интерфейса Java2D. Затем этот апплет можно будет вызывать из клиентских JavaScript_сценариев. (Подробнее о работе с Java_апплетами из JavaScript_сценариев рассказывается в главе 23.) Как может выглядеть такой апплет, показано в примере 22.14. Обра_ тите внимание: этот апплет экспортирует лишь малую толику методов приклад_ ного интерфейса Java2D. Интерфейс рисования Flash_модуля состоит всего из восьми методов, поэтому не составляет никакого труда экспортировать их все. Интерфейс Java2D содержит значительно больше методов. Чисто технически было бы совсем несложно сделать доступными все методы, но тогда апплет полу_ чился бы слишком объемным, чтобы приводить здесь его код. Программный код примера 22.14 демонстрирует базовый подход и обеспечивает достаточно бога_ тый прикладной интерфейс создания круговой диаграммы, представленной на рис. 22.5.
Пример 22.14. Java'апплет Canvas.java, предназначенный для создания графических изображений на стороне клиента
import java.applet.*; import java.awt.*; import java.awt.geom.*; import java.awt.image.*;
/**
* Этот простой апплет сам ничего не делает: он просто экспортирует API
* для использования в JavaScript_сценариях на стороне клиента.
| */
|
|
|
| public class Canvas extends
| Applet {
|
| BufferedImage image; //
| Рисование будет производиться на невидимом изображении
|
| Graphics2D g;
| //
| С использованием этого графического контекста
|