Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
можно ввести логику, которая, используя 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 вида. Например, если изменение заключается в появлении