Немного Java - и страница ожила



Описание исходных текстов


Многие RAD-продукты для создания Java-приложений имеют в своем составе различные опции автоматизации разработки, и система Microsoft Visual J++, с помощью которой создавались все примеры, - не исключение. Она может автоматически генерировать заготовку исходного текста Java-приложения, затем ее можно дополнить в соответствии с задачами, решаемыми приложением. В соответствующей диалоговой панели можно указать, что необходимо подготовить исходные тексты многопоточного аплета.

Созданный таким образом аплет использует способ реализации многопоточности, основанный на применении интерфейса Runnable:

public class SimpleScroll extends Applet implements Runnable { private Thread m_SimpleScroll = null; . . . }

В классе SimpleScroll определено поле m_SimpleScroll класса Thread, хранящее ссылку на поток, запускаемый нашим аплетом для периодической перерисовки своего окна. Это поле инициализируется значением null, что необходимо для правильной работы аплета. В поле m_Text типа String хранится текстовая строка, которая передается аплету в документе HTML с помощью специального параметра. Установив дополнительные параметры, можно передавать цвет, стиль и размер шрифта для отображения текстовой строки. Аплет определяет длину строки и записывает ее в поле m_StringSize. Текущая позиция начала отображения строки при вызове метода paint хранится в поле m_CurrentXPosition. Эта позиция периодически уменьшается на один пиксел при каждом вызове метода paint.

Рассмотрим теперь самые важные методы нашего аплета. Метод init получает управление при инициализации аплета. Прежде всего он получает из документа HTML значение единственного параметра - текстовую строку, которая будет сдвигаться в окне аплета. Параметр извлекается с помощью метода getParameter и сохраняется в поле m_Text. Далее метод init определяет размерности текущего шрифта, выбранного для показа строки, вызывая для этого метод getFontMetrics. В качестве параметра ему передается значение, возвращенное методом getFont. Метрики сохраняются в поле fm. Пользуясь этими метриками, метод init определяет длину строки m_Text с помощью метода stringWidth. После определения длины строки инициализируется поле m_CurrentXPosition, хранящее текущую позицию для рисования сдвигаемой строки. В это поле записывается координата правой границы окна аплета. Ширина окна аплета определяется с помощью метода size. Последнее, что делает метод init, - устанавливает желтый (в нашем случае) цвет для фона окна аплета.




Содержание  Назад  Вперед