Улучшение изображения двойной буферизацией
Суть двойной буферизации в том, что в оперативной памяти создается буфер — объект класса image или Bufferedimage, и вызывается его графический контекст, в котором формируется изображение. Там же происходит очистка буфера, которая тоже не отражается на экране. Только после выполнения всех действий готовое изображение выводится на экран.
Все это происходит в методе updateo, а метод paint о только обращается к update (). Листинги 15.10—15.11 разъясняют данный прием.
Листинг 15.10.
Двойная буферизация с помощью класса image
public void update(Graphics g){
int w = getSize().width, h = getSize().height;
// Создаем изображение-буфер в оперативной памяти
Image offlmg = createlmage(w, h);
// Получаем его графический контекст
Graphics offGr = offImg.getGraphics();
// Меняем текущий цвет буфера на цвет фона
offGr.setColor(getBackground());
//и заполняем им окно компонента, очищая буфер
offGr.fillRect(0, 0, w, h);
// Восстанавливаем текущий цвет буфера
offGr.setColor(getForeground());
// Для листинга 15.9 выводим в контекст изображение
offGr.drawlmage(img[count % 10], 0, 0, this);
// Рисуем в графическом контексте буфера
// (необязательное действие)
paint(offGr);
// Выводим изображение-буфер на экран
// (можно перенести в метод paint())
g.drawlmage(offlmg, 0, 0, this); }
// Метод paint() необязателен
public void paint(Graphics g)J update(g); }
Листинг 15.11.
Двойная буферизация с помощью класса Bufferedimage
public void update(Graphics g){
Graphics2D g2 = (Graphics2D},g;
int w = getSize().width, h = getSize().height;
// Создаем изображение-буфер в оперативной памяти
Bufferedimage bi = (Bufferedimage)createlmage(w, h);
// Создаем графический контекст буфера
Graphics2D big = bi.createGraphics();
// Устанавливаем цвет фона
big.setColor(getBackground());
// Очищаем буфер цветом фона
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий