<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ice world

    There is nothing too difficult if you put your heart into it.
    posts - 104, comments - 103, trackbacks - 0, articles - 0

    jfreechart畫圖tooltip不顯示的問題

    Posted on 2011-04-16 13:59 IceWee 閱讀(931) 評論(0)  編輯  收藏 所屬分類: Java
    最近項目中需要用到jfreechart,以前只是簡單的玩玩而已,一直沒有真正的應用到實際項目中,今天在畫圖的時候可把自己折磨慘了,就一個小小的tooltip死活不出來。


    我用的Spring + Struts,有很多人用jfreechart都是寫的Servlet,其實用Struts是一樣的。

    我起初在Struts的Action中使用org.jfree.chart.ChartUtilities。writeChartAsPNG(java.io.OutputStream out, JFreeChart chart, int width, int height) 方法,將生成的JFreeChart對象寫到輸出流中,return自然是null,這樣做界面可以顯示Action寫過來的圖片,但是沒有 tooltip的出現。后來我發現很多人都不是直接把圖片寫到流中的,而是在JSP頁面通過<img>標簽來顯示圖片的。于是我也使用了主流方式顯示圖片,使用chartName = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);將圖片文件名設置請求屬性發給JSP頁面,頁面通過圖片標簽顯示圖片,結果圖片依舊顯示正常,但是tooltip還是沒有出來,由于剛剛用這東西,一點都不了解,于是開以往項目中是如何寫的,我發現別人的代碼中有這樣一行:ChartUtilities.writeImageMap(pw, chartName, info, false);這是將圖片地圖寫到流中,而且頁面的圖片標簽中也多了個usermap屬性,我仿佛有點清醒了,于是效仿著做了一下,tooltip果真出現了。

    JSP代碼:

    <%    
            JFreeChart chart 
    = (JFreeChart)request.getAttribute("chart");    
            
    String chartName = Common.generateChart(chart, session, new PrintWriter(out), 760410);
    %>


    Common的generateChart方法就是放回圖片的文件名,并且將圖片地圖寫入到當前的流中。

    Java代碼:

    public static String generateChart(JFreeChart chart, HttpSession session,
                PrintWriter pw, 
    int width, int height) {
            String chartName 
    = "";
            
    try {
                ChartRenderingInfo info 
    = new ChartRenderingInfo(
                        
    new StandardEntityCollection());
                chartName 
    = ServletUtilities.saveChartAsPNG(chart, width, height,
                        info, session);
                
    /** 將圖片地圖寫入PW中 */
                ChartUtilities.writeImageMap(pw, chartName, info, 
    false);
                pw.flush();
            }
     catch (Exception e) {
                e.printStackTrace();
            }

            
    return chartName;
        }


    起初我并沒有使用Common這個方法,而是直接將這個方法中的代碼寫在了Struts的Action中,發現無效,而且在pw.flush()一行出現了異常,流這里太爛!哎!提示刷新后就不能再return了。于是去掉這行后圖片正常顯示,但沒有tooltip。我懷疑是Struts中用 response獲取的PrintWriter并不是返回到JSP中用out封裝的PrintWriter,根本就不是,還懷疑什么,這不是廢話嘛!所以在當前流中并沒有圖片地圖,自然不顯示tooltip了。

    顯示圖片的IMG標簽

    <img src="<%=request.getContextPath()%>/<%=chartName%>" height="100%" border=0 usemap="#<%=chartName%>" >



    主站蜘蛛池模板: 免费人成在线观看网站品爱网| 亚洲丶国产丶欧美一区二区三区| 亚洲国产精品VA在线看黑人| 亚洲人AV永久一区二区三区久久| 免费**毛片在线播放直播| 国产一区二区三区在线观看免费| 国产黄色片在线免费观看| 日韩一级免费视频| 免费a在线观看播放| 亚洲国产精品成人久久蜜臀 | 亚洲AV第一成肉网| 亚洲精华国产精华精华液| 欧美亚洲国产SUV| 直接进入免费看黄的网站| 免费看内射乌克兰女| 国产高清对白在线观看免费91| 精品人妻系列无码人妻免费视频| 三上悠亚电影全集免费 | 亚洲精品国产国语| 亚洲av无码专区在线观看亚| 特级一级毛片免费看| 福利免费在线观看| 97国产在线公开免费观看| 亚洲欧洲免费无码| 免费一级做a爰片久久毛片潮喷| 中文字幕亚洲天堂| 337p日本欧洲亚洲大胆艺术| 亚洲日本人成中文字幕| 国产亚洲精品美女久久久久久下载| 无码毛片一区二区三区视频免费播放 | 永久中文字幕免费视频网站| 无码专区一va亚洲v专区在线 | 免费一看一级毛片人| 中国亚洲女人69内射少妇| 久久精品国产亚洲精品2020| 亚洲乱码一二三四区乱码| 偷自拍亚洲视频在线观看 | 亚洲日韩国产欧美一区二区三区| 国产成人 亚洲欧洲| 久久久久国色av免费看| www.999精品视频观看免费|