El problema es probable que usted no tiene antialiasing activado su contexto gráfico. Pruebe la siguiente línea antes de dibujar:
graphics.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
(donde, por supuesto, es la instancia graphics
Graphics2D).
Más tarde, cuando se descubre que el texto que está dibujando también es feo e irregular, tendrá que utilizar
graphics.setRenderingHint(
RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
Sin embargo, el texto es un poco más complicado; hay varios valores para esta sugerencia que puede usar dependiendo de (entre otras cosas) el tipo de pantalla para la que está dibujando el texto. Debería leer el RenderingHints.KEY_TEXT_ANTIALIASING
API doc para conocer esos detalles.
No conozco bien a Java, y no sé swing bien: pero creo que estás buscando anti-aliasing. – Dair