import java.awt.*;
import javax.swing.*;

public class TileBackground extends JComponent {
    private Image tile;
    private int tileScale;

    public TileBackground(int tileScale, String imagePath) {
        super();
        this.tile = Toolkit.getDefaultToolkit().getImage(imagePath);
        this.tileScale = tileScale;
    }

    @Override
    protected void paintComponent(Graphics brush) {
        Graphics newBrush = brush.create();

        if (this.isOpaque()) {
            newBrush.setColor(this.getBackground());
            newBrush.fillRect(0, 0, this.getWidth(), this.getHeight());
        }

        int horizontalReps = this.getWidth() / this.tileScale + 1;
        int verticalReps = this.getHeight() / this.tileScale + 1;

        for (int x = 0; x < horizontalReps; x++) {
            for (int y = 0; y < verticalReps; y++) {
                newBrush.drawImage(this.tile, x * tileScale, y * tileScale, tileScale, tileScale, this);
            }
        }
    }
}