JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java Tools  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 請問一下 jfreechart setTextAntiAlias(false) 關閉抗文字鋸齒後,文字變破碎的問題
dreamltf

wicket



發文: 649
積分: 5
於 2009-04-21 19:05 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
請教各位大大

下面是我的code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
JFreeChart chart = ChartFactory.createGanttChart(null, "專案名稱", "日期", dataset, true, false,
        false);
chart.setBackgroundPaint(Color.white);
chart.getLegend().setPosition(RectangleEdge.RIGHT);
chart.setTextAntiAlias(false);
 
CategoryPlot plot = chart.getCategoryPlot();
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
 
Font bigFont = new Font("新細明體", Font.TRUETYPE_FONT, 12);
Font smallFont = new Font("新細明體", Font.TRUETYPE_FONT, 10);
 
CategoryAxis axis = plot.getDomainAxis();
axis.setLabelFont(bigFont);
axis.setTickLabelFont(smallFont);
axis.setMaximumCategoryLabelWidthRatio(10.0f);
 
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setLabelFont(bigFont);
rangeAxis.setTickLabelFont(smallFont);
 
CategoryItemRenderer renderer = plot.getRenderer();
BarRenderer r = (BarRenderer) renderer;
renderer.setSeriesPaint(0, Color.gray);
renderer.setSeriesPaint(1, Color.lightGray);

若沒有設定 chart.setTextAntiAlias(false);
則雖然字體稍微模糊,但還不至於破碎

神奇的來了,設定了 chart.setTextAntiAlias(false); 之後
dateAxisLabel 變很清楚,不模糊,我想要的結果 <-圖表下方X軸title
legendLabel 變很清楚,不模糊,我想要的結果

但是
categoryAxisLabel 變很破碎,連模糊都稱不上 <-圖表左側Y軸title
CategoryAxisTickLabel 變很破碎,連模糊都稱不上 <--圖表左側Y軸分類的標題 tick label

謝謝


reply to postreply to post
作者 Re:請問一下 jfreechart setTextAntiAlias(false) 關閉抗文字鋸齒後,文字變破碎的問題 [Re:dreamltf]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2009-04-21 19:32 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
dreamltf wrote:

若沒有設定 chart.setTextAntiAlias(false);
則雖然字體稍微模糊,但還不至於破碎

神奇的來了,設定了 chart.setTextAntiAlias(false); 之後
dateAxisLabel 變很清楚,不模糊,我想要的結果 <-圖表下方X軸title
legendLabel 變很清楚,不模糊,我想要的結果

但是
categoryAxisLabel 變很破碎,連模糊都稱不上 <-圖表左側Y軸title
CategoryAxisTickLabel 變很破碎,連模糊都稱不上 <--圖表左側Y軸分類的標題 tick label


1
Font bigFont = new Font("新細明體", Font.TRUETYPE_FONT, 12);


這裡建構 Font object 的方式是不正確的(就意義上而言)。第二個參數是給 font style,Font.TRUETYPE_FONT 此常數在意義上並不是用來代表某一種 font style(雖然它的值同於 Font.PLAIN)。

另外,你把字型調這麼小,用肉眼看實在是不方便,特別是有顯示中文時(字小到我在 19" 螢幕 1440 x 900 桌面上看不太出來怎麼樣算是破碎)。
如果你把自行改大一點,還會有你形容的現象嗎?

我把我在 Windows XP + JRE 1.6.0_13 + JFreeChart 1.0.12 產出的影像貼在這裡,看看是否同你描述的狀況。

Antialias ON


Antialias OFF


第二張圖裡的 vertical axis 的 tick label: "Category 1" 與 "Category 2" 看起來有點兒醜,你可以把他換成其他的英文字型(如果 tick label 只包含英數字),即使字型 size 一樣小,會好看許多。
比如 Arial 字型:


Duncan edited on 2009-04-21 19:57
reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:請問一下 jfreechart setTextAntiAlias(false) 關閉抗文字鋸齒後,文字變破碎的問題 [Re:dreamltf]
UndeadJ

UX & UI Design



發文: 384
積分: 3
於 2009-04-21 19:50 user profilesend a private message to usersend email to UndeadJreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
怎麼開AA的 反而比不開的還不清楚
上圖左邊的字讓我的眼睛看的好不舒服....


reply to postreply to post
我們是懷抱各自的夢想,買了車票的乘客,不過就像列車一定會有終點,人生有時會碰到必須換車的時候...

我們站在名為「今天」的車站,在名為「昨天」的列車下車,轉搭為「明天」的列車

不過,若沒及時搭上的話....
作者 Re:請問一下 jfreechart setTextAntiAlias(false) 關閉抗文字鋸齒後,文字變破碎的問題 [Re:dreamltf]
dreamltf

wicket



發文: 649
積分: 5
於 2009-04-21 19:51 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
感謝 Duncan 及 UndeadJ 大大

我的環境是

1. JRE 1.5.0.9
2. JFreeChart 1.0.6
3. JasperReport 2.0.5
4. 遠端由 Windows 2003 上的 excel viewer 2003 看 JasperReport 產出的 excel (內鑲 JFreeChart 圖表)

過程是使用 jfreechart 產出一張圖表,然後傳入 jasperreport 後匯出成 excel

附上圖片一張


reply to postreply to post
作者 Re:請問一下 jfreechart setTextAntiAlias(false) 關閉抗文字鋸齒後,文字變破碎的問題 [Re:dreamltf]
dreamltf

wicket



發文: 649
積分: 5
於 2009-04-22 12:19 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
應該是 OS 的問題,我後來在家試 Ubuntu8.1.0、WindowsXP 都正常

只是不瞭為什麼比它小的字 (legendLabel,dateAxisLabel) 為何可以正常xd


reply to postreply to post
» JWorld@TW »  Java Tools

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8