Я играю с графикой в Java, используя JFrames, и пытаюсь полностью понять, когда действительно происходят изменения Graphics
.Обновление графики Java JFrame
Предположим, у меня есть таймер, работающий каждую секунду, и каждую секунду меняется графика. Метод тика, например, будет запускаться каждую секунду ...
public void tick(Graphics g) {
g.fillRect(0,0,10,10);
//Do Some Computations
g.fillRect(0,0,someComputedWidth,someComputedHeight);
}
Являются ли графики мгновенно обновлены на дисплее компьютеров? Когда вызывается первый метод fillRect
, этот прямоугольник мгновенно создается?
Я хочу, чтобы иметь возможность рисовать все мои графики, а затем заставить их действовать в одно и то же время. Я хочу, чтобы метод tick буферировал все обновления, а затем выполнил их все сразу. Как это сделать?
Прохладный. Whats the differnece между 'super.paintComponents (bgr);' и 'g.drawImage (image, 0, 0, null);'? Что обычно делает 'paintComponent()' 'и где он обычно вызывается? –
super.paintComponents (bgr) вызывает метод для дерева наследования. Он рисует и делает все, что необходимо, с компонентами качания, присутствующими на панели. bgr - это графика bufferedImage, и в этом случае компоненты рисуются. g рисует на дисплей, в этом случае он рисует bufferedImage, при x = 0 y = 0 (верхний левый угол), null означает, что нет наблюдателя – Suspended
Отлично! Термин для этого - двойная буферизация? –