Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
задающего шрифт для вывода теКСта на экРан- Этот параметр также является частью состояния graph'cs- ^го значение по умолчанию задается соответствующим свойством компонента, однако может быть изменено с помощью метода getFont. Для получения текущего значения служит метод getFont.
Clip (ограничитель)
Хотя методы класса Graphics могут принимать любые значения аргументов, задающих значения координат (в пределах типа int), существует дополнительный ограничитель - clip. Любые изменения вне этого ограничителя на экране появляться не будут. Например, если вызвать метод drawLine(-l00, -100, 1000, 1000), то на компоненте отобразится лишь часть линии, которая помещается в его границы.
Размеры ограничителя можно изменять. Метод clipRect(int х, int у, intwidth, int height) вычисляет пересечение указанного прямоугольника и текущей области clip. Результат станет новым ограничителем. Таким образом, этот метод может только сужать область clip. Метод setClip(int х, int у, intwidth, int height) устанавливает ограничитель произвольно в форме прямоугольника. Метод getClipBounds возвращает текущее значение в виде объекта Rectangle.
При появлении приложения на экране каждый видимый компонент должен быть отрисован полностью. Поэтому при первом вызове метода paint, как правило, область clip совпадает с границами компонента. Однако при дальнейшей работе это не всегда так.
Рассмотрим следующий пример:
public void paint(Graphics g) {
Color с = new Color((int)(Math.random()*255),
(int)(Math.random()*255), (int)(Math.random()*255)); g.setColor(c); //g.setClip(null);
g.fillRect(0, 0, getWidth(), getHeight());
}
Как видно из кода, при каждом вызове метода paint генерируется но-^ значение цвета, после чего этим цветом закрашивается весь компонент.
Днако поскольку в Graphics есть ограничитель, закрашена будет только °°Ласть clip, что позволит ее увидеть.
После запуска программы компонент будет полностью окрашен °*Ним цветом. Если теперь с помощью мыши "взять" окно какого-нибудь
Если же провести быстро, то получится картинка, подобная правой в примере выше. Хорошо видно, что компонент перерисовывается Не полностью, а частями. Ограничитель выставляется в соответствии с тон областью, которая оказалась "повреждена" и нуждается в перерисовке Для сложных компонентов