2016-03-16 45 views
2

在Swing中有高分辨率繪製的方法嗎? 我試圖繪製一個簡單的形狀,這些形狀的分辨率非常低。如何在Swing中以高分辨率繪製?

+2

'Graphics2D'默認渲染設置被設定得相當低,有針對性地對速度超過質量,可以通過爲[示例](HTTP的'RenderingHints' API調整這些: //stackoverflow.com/questions/13906687/how-can-i-smooth-my-jframe-shape/13906713#13906713),[示例](http://stackoverflow.com/questions/24621989/how-do-i -draw-an-image-in-the-shape-of-parallelogram/24622056#24622056),[example](http://stackoverflow.com/questions/25796572/simplest-code-to-round-corners-/-JABEL-in-java/25799019#25799019) – MadProgrammer

+1

和[示例](http://stackoverflow.com/questions/25577856/rotating-ball-loses-sharpness-an d-顏色/ 25581053#25581053) – MadProgrammer

回答

6

你可能無法控制Swing中的分辨率,但是您可以使用呈現提示屬性從的Graphics2D來調整上呈現品質:

使用Graphics2D類呈現提示屬性來指定是否希望儘可能快地渲染對象,或者是否希望渲染質量儘可能高。

到這裏看看:Controlling Rendering Quality

3

請嘗試關閉反鋸齒上。

public void paint(Color c, Polygon p, Graphics g){ 
Graphics2D g2d = (Graphics2D) g; 
g2d.setRenderingHints(new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 
g2d.setColor(c); 
g2d.fillPolygon(p); 
} 

還有更多的文檔here