Если это только прямоугольники, то в метод рисования должно работать следующее:
int xIncrement = (int)g.getFont().getStringBounds("*", null).getWidth();
int yIncrement = (int)g.getFont().getStringBounds("*", null).getHeight();
for(int i = y; i < y + height; i += xIncrement)
for(int j = x; j < x + width; j += yIncrement)
g.drawString("*", j, i);
Для треугольников и других фигур это немного сложнее, но вы можете вычислить градиенты линийразделяя точки, и, следовательно, получите начальный x для каждой линии.
Как правило, старайтесь избегать «рисования звездочками» ...