Alors, voilà une facon de faire, à toi de l'adapter à ce que tu veux
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Grille extends JPanel {
public Grille(){
setSize(500,500);
}
protected void paintComponent(Graphics g){
int hauteur = getHeight()/4;
int base = (int)(hauteur/Math.cos(Math.PI/6));
int nombreLargeur = (int)(getWidth()/base);
for(int i=0; i<4; i++){
for(int j=0; j<nombreLargeur; j++){
Polygon p = new Polygon();
p.addPoint(j*base+base/2, i*base);
p.addPoint(j*base, (i+1)*base);
p.addPoint(j*base+base, (i+1)*base);
g.drawPolygon(p);
}
}
}
public static void main(String[] a){
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setBounds(10, 10, 500, 500);
f.add(new Grille());
f.setVisible(true);
}
}