Создание объекта BufferedImage:
BufferedImage bi = new new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB);
внутри цикла рисования установите ваши пиксели:
bi.setRGB(x, y, int_rgb);
...
и, наконец, отобразить буферизованное изображение:
g.drawImage(bi, 0, 0, null);
Если вы обнаружите, что setRGB () медленный, вы можете получить прямой доступ к растровым данным:
int[] raster = ((DataBufferInt)bi.getRaster().getDataBuffer()).getData();
и позже
raster[y * 300 + x] = int_rgb;