| |
ельно с кодом
аплета, будет выполнять метод run, определенный в классе аплета.
Ссылка на созданную задачу записывается в поле m_Rectangles.
Метод stop
Метод stop нашего аплета не имеет никаких особенностей. Он вызывается, когда
пользователь покидает страницу сервера Web с аплетом. В этом случае метод
останавливает задачу, вызывая для этого метод stop класса Thread:
public void stop()
{
if (m_Rectangles != null)
{
m_Rectangles.stop();
m_Rectangles = null;
}
}
После остановки в поле m_Rectangles записывается значение null. Это является
признаком того, что задача остановлена.
Метод run
Программный код метода run работает в рамках отдельной задачи. Он рисует в
окне аплета закрашенные прямоугольники. Прямоугольники имеют случайные
координаты, расположение и цвет.
Для того чтобы рисовать, необходимо получить контекст отображения. Так как
наша задача, точнее, метод run определен в классе аплета, то он может получить
контекст отображения, вызвав метод getGraphics:
Graphics g = getGraphics();
Для рисования нам также нужно знать размеры окна аплета. Мы получаем эти
размеры при помощи метода size:
Dimension dimAppWndDimension = size();
Вооружившись контекстом отображения и размерами окна аплета, задача входит в
бесконечный цикл рисования прямоугольников.
В качестве генератора случайных чисел мы используем метод random из класса
Math, который при каждом вызове возвращает новое случайное число типа double,
лежащее в диапазоне значений от 0.0 до 1.0.
Координаты по осям X и Y рисуемого прямоугольника определяются простым
умножением случайного числа, полученного от метода random, соответственно, на
ширину и высоту окна аплета:
x = (int)(dimAppWndDimension.width * Math.random());
y = (int)(dimAppWndDimension.height * Math.random());
Аналогично определяются размеры прямоугольника, однако чтобы прямоугольники
не были слишком крупными, мы делим полученные значения на 2:
width = (int)(dimAppWndDimension.width * Math.random())/2;
height = (int)(dimAppWndDimension.height * Math.random())/2;
Так как случайное число имеет тип double, в обоих случаях мы выполняем явное
преобразование результата вычислений к типу int.
Для случайного выбора цвета прямоугольника мы вычисляем отдельные цветовые
компоненты, умножая значение, полученное от метода random, на число 255:
rColor = (int)(255 * Math.random());
gColor = (int)(255 * Math.random());
bColor = (int)(255 * Math.random());
Полученные значения цветовых компонент используются в конструкторе Color для
получения цвета. Этот цвет устанавливается в контексте отображения методом
setColor:
g.setColor(new Color(rColor, gColor, bColor));
Теперь все готово для рисования прямоугольника, которое мы выполняем при
помощи метода fillRect:
g.fillRect(x, y, width, height);
После рисования прямоугольника метод run задерживает свою работу на 50
миллисек
|
|