Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

можно ввести логику, которая, используя clip будет отрисовывать не все элементы, а только некоторые из них, для уве­личения производительности.

В примере закомментирована одна строка, в которой передается значение null в метод setClip. Такой вызов снимает все ограничения, по­этому компонента каждый раз будет перекрашиваться полностью, меняя при этом цвет. Однако никаким образом нельзя изменить состояние пик­селов вне компонента - ограничитель не может быть шире, чем границы компонента.

Методы repaint и update

Кроме paint в классе Component объявлены еще два метода, отвеча­ющие за прорисовку компонента. Как было рассмотрено, вызов paint ини­циируется операционной системой, если возникает необходимость пере­рисовать окно приложения, или часть его. Однако может потребоваться обновить внешний вид, руководствуясь программной логикой. Например, отобразить результат операции вычисления, или работы с сетью. Можно изменить состояние компонента (значение его полей), но операционная система не отследит такое изменение и не инициирует перерисовку.

Для программной инициализации перерисовки компонента служит метод repaint. Конечно, у него нет аргумента типа Graphics, поскольку программист не должен создавать экземпляры этого класса (точнее, его наследников, ведь Graphics - абстрактный класс). Метод repaint можно вызывать без аргументов. В этом случае компонент будет перерисован максимально быстро. Можно указать аргумент типа long - количеств'1 миллисекунд. Система инициализирует перерисовку спустя указанно1-время. Можно указать четыре числа типа int (х, у, width, height), задаваЯ прямоугольную область компонента, которая нуждается в перерисовка раконец, можно указать все 5 параметров - и задержку по времени, и об­дасть перерисовки.

Если перерисовка инициируется приложением, то система вызывает де метод paint, а метод update. У него уже есть аргумент типа Graphics и по ^олчанию он лишь закрашивает всю область компонента фоновым цветом (свойство background), а затем вызывает метод paint. Зачем же было вводить ріст дополнительный метод, если можно было сразу вызвать paint? Дело в фМ, что поскольку перерисовка инициируется приложением, для сложных компонентов становится возможной некоторая оптимизация обновления

t

euiHero вида. Например, если изменение заключается в появлении