2011-09-07 1 views
9

G'day, 저는 일부 Line2D 객체가있는 JPanel을 사용하고 있습니다. 문제는 제가이 라인을 그리면 내가 원하는대로 나타나지 않습니다. 라인 픽셀을 완벽하게 만드는 방법 Line2D - Graphics2D

enter image description here

확대 된 영역

,

enter image description here

그들을 주름보다는 더 세련된 보이게하는 방법, 나는 이미지를 게시하고, 그래서 그것은 한마디로 설명하기 어려운, 부드러운되지 않습니다.

감사

+3

자바를 잘 모르고 스윙을 잘 모른다 :하지만 나는 앤티 앨리어싱을 찾고 있다고 생각한다. – Dair

답변

10

문제는 당신이 당신의 그래픽 컨텍스트를 설정 앤티 엘리 어싱이없는 것 같다. 당신이 그리기 전에 다음 줄을보십시오 :

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 doc을 읽어야합니다.

+0

덕분에 코드를 편집했지만 개념은 정확했지만 setRenderingHits에는 Map 객체가 필요합니다. 그래서 setRenderingHint로 변경하고 상수는 Graphics2D 대신 RenderingHints에 있습니다. :) – doNotCheckMyBlog

+0

좀 더 자세한 내용을 추가 할 때 우연히 편집 내용을 덮어 썼지 만, 맞습니다. 나는 그것을 'setRenderingHints-> setRenderingHint'로 고쳤다. 감사! –

+0

앤티 앨리어싱은 기본적으로 IMO (켜져 있지 않지만 오라클의 사람이 그렇게해야 함)입니다. –