2011-09-07 15 views
9

G'day, tengo JPanel con algunos objetos Line2D en él. El problema es que cuando dibujo esta línea no aparece como yo quiero. Las líneas no son lisas, es difícil de explicar con palabras lo que estoy publicando una imagen,Cómo hacer que pixel sea perfecto Line2D en - Graphics2D

enter image description here

enfocó la zona,

enter image description here

Cómo hacer que se vean más pulido en lugar de arrugada.

Gracias

+3

No conozco bien a Java, y no sé swing bien: pero creo que estás buscando anti-aliasing. – Dair

Respuesta

10

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.

+0

Gracias, acabo de editar su código, Concept fue correcto, pero setRenderingHits requiere el objeto Map. así que lo cambié a setRenderingHint y las constantes están en RenderingHints en lugar de Graphics2D. :) – doNotCheckMyBlog

+0

Vaya, tienes razón, aunque accidentalmente había sobrescrito tu edición cuando estaba agregando algunos detalles más. Lo arreglé ahora, 'setRenderingHints-> setRenderingHint'. ¡Gracias! –

+0

El antialiasing debe estar activado por IMO predeterminado (no lo es, pero alguien de Oracle debería hacerlo) –

Cuestiones relacionadas