Вот увеличенное изображение того, что происходит, размер прямоугольника, кажется, создает также шаблон.

Вот минимально жизнеспособный пример, который должен печатать прямоугольники 1x1.
Код: Выделить всё
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
class Scratch {
public static final int WIDTH = 400;
public static final int HEIGHT = 400;
public static void main(String[] args) {
BufferedImage img = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2d = img.createGraphics();
JPanel panel = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D panel2d = (Graphics2D) g;
// Black bg
g2d.setColor(Color.BLACK);
g2d.fillRect(0, 0, getWidth(), getHeight());
int c = 0;
for (int x = 0; x < getWidth(); x++) {
for (int y = 0; y < getHeight(); y++) {
g2d.setColor(new Color((c += 13) % 255, (c += 17) % 255, (c += 23) % 255));
g2d.fillRect(x, y, 1, 1);
}
}
panel2d.drawImage(img, null, 0, 0);
}
};
JFrame frame = new JFrame("Scratch");
frame.setLayout(new BorderLayout());
frame.add(panel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
frame.getContentPane().setPreferredSize(new Dimension(WIDTH, HEIGHT));
frame.pack();
}
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... -a-pattern