Скорее всего, проблема в том, что у вас не включен сглаживание в вашем графическом контексте. Перед рисованием попробуйте следующую линию:
graphics.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
(где, конечно, graphics
- ваш экземпляр Graphics2D).
Позже, когда вы обнаружите, что текст , который вы рисуете, также уродлив и неровен, вы захотите использовать
graphics.setRenderingHint(
RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
Однако текст немного сложнее; есть несколько значений для этой подсказки, которые вы можете использовать в зависимости (среди прочего) от типа экрана, на котором вы рисуете текст. Вы должны прочитать RenderingHints.KEY_TEXT_ANTIALIASING
API документ для этих деталей.