Microsoft Visual J++. Создание приложений и аплетов на языке Java


Метод paint - часть 2


Схематически эту иерархию можно изобразить так:

java.lang.Object (корневой класс)

  -> java.awt.Component

    -> java.awt.Container

      -> java.awt.Panel

        -> java.applet.Applet

Метод paint определен в классе java.awt.Component, но так как этот класс является базовым для класса Applet и для нашего класса HelloAp, мы можем переопределить метод paint.

Теперь о том, когда вызывается метод paint.

Этот метод вызывается, когда необходимо перерисовать окно аплета. Если вы создавали приложения для операционной системы Microsoft Windows, то наверняка знакомы с сообщением WM_PAINT, которое поступает в функцию окна приложения при необходимости его перерисовки.

Перерисовка окна приложения Windows и окна аплета обычно выполняется асинхронно по отношению к работе приложения или аплета. В любой момент времени аплет должен быть готов перерисовать содержимое своего окна.

Такая техника отличается о той, к которой вы, возможно, привыкли, создавая обычные программы для MS-DOS. Программы MS-DOS сами определяют, когда им нужно рисовать на экране, причем рисование может выполняться из разных мест программы. Аплеты, так же как и приложения Windows, выполняют рисование в своих окнах централизованно. Аплет делает это в методе paint, а приложение Windows - при обработке сообщения WM_PAINT.

Обратите внимание, что методу paint в качестве параметра передается ссылка на объект Graphics:

public void paint(Graphics g)

{

  . . .

}

По своему смыслу этот объект напоминает контекст отображения, с которым хорошо знакомы создатели приложений Windows. Контекст отображения - это как бы холст, на котором аплет может рисовать изображение или писать текст. Многочисленные методы класса Graphics позволяют задавать различные параметры холста, такие, например, как цвет или шрифт.

Наше приложение вызывает метод drawString, который рисует текстовую строку в окне аплета:

g.drawString(

  "Created with Microsoft Visual J++ Version 1.0", 10, 20);

Вот прототип этого метода:




Начало  Назад  Вперед



Книжный магазин