Struts2學習筆記18:JFreeChart

      網友投稿 706 2025-04-01

      Struts2

      學習筆記

      18

      JFreeChart

      二十一,二十二講

      學習內容:

      1.

      兩個簡單的JFreeChart實例

      2.

      將JFreeChart生成的圖片保存到本地磁盤上

      3.

      在頁面上顯示JFreeChart圖片

      首要工作:

      導入相關包(從課件中導入,在網上下載的最新版本的JFreeChart顯示中文的時候出現亂碼)

      jcommon-1.0.12.jar?,?jfreechart-1.0.9.jar

      詳細內容:

      1.

      制作一個餅圖

      ,將其中一些方法的參數信息當作注釋,顯示出來,但是在真正的編寫代碼時候,主要是參考API文檔

      package?test;import?java.awt.Font;import?org.jfree.chart.ChartFactory;import?org.jfree.chart.ChartFrame;import?org.jfree.chart.JFreeChart;import?org.jfree.chart.plot.PiePlot;import?org.jfree.data.general.DefaultPieDataset;public?class?TestJFreeChart1?{public?static?void?main(String[]?args)?{//先為餅圖準本數據 DefaultPieDataset?dpd?=?new?DefaultPieDataset();dpd.setValue(?"管理人員"?,?30?);dpd.setValue(?"開發人員"?,?50?);dpd.setValue(?"銷售人員"?,?42?);dpd.setValue(?"策劃人員"?,?15?);?//創建圖表 //createPieChart(java.lang.String?title,?PieDataset?dataset,?boolean?legend,?boolean?tooltips,?boolean?urls)? JFreeChart?chart?=?ChartFactory.createPieChart(?"公司人員分布圖"?,?dpd?,?true?,?true?,?true?);//獲取plot PiePlot?plot?=?(PiePlot)chart.getPlot();//設置plot的字體類型,即"管理人員","開發人員","銷售人員","策劃人員"的字體類型 //plot.setLabelFont(java.awt.Font?font)? //public?Font(String?name,?int?style,?int?size) plot.setLabelFont(new?Font("隸書",?Font.BOLD?+?Font.ITALIC,?14));//ChartFrame(java.lang.String?title,?JFreeChart?chart)? ChartFrame?cf?=?new?ChartFrame(?"某公司人員分布圖"?,?chart?);????????添加代碼處cf.pack();cf.setVisible(?true?);}}

      運行效果如圖所示:

      2.

      制作一個柱形圖

      package?test;import?java.awt.Font;import?javax.swing.JPanel;import?org.jfree.chart.ChartFactory;import?org.jfree.chart.ChartPanel;import?org.jfree.chart.JFreeChart;import?org.jfree.chart.axis.CategoryAxis;import?org.jfree.chart.axis.ValueAxis;import?org.jfree.chart.plot.CategoryPlot;import?org.jfree.chart.plot.PlotOrientation;import?org.jfree.chart.title.LegendTitle;import?org.jfree.chart.title.TextTitle;import?org.jfree.data.category.DefaultCategoryDataset;import?org.jfree.ui.ApplicationFrame;public?class?TestJFreeChart2_1?extends?ApplicationFrame{private?static?final?long?serialVersionUID?=?-3361537106012344957L;public?TestJFreeChart2_1?(?String?title){super(title);this.setContentPane(createPanel());}public?static?DefaultCategoryDataset?createCategory()?{DefaultCategoryDataset?dcd?=?new?DefaultCategoryDataset();dcd.setValue(10,?"aa",?"管理人員");dcd.setValue(25,?"bb",?"銷售人員");dcd.setValue(38,?"cc",?"開發人員");dcd.setValue(40,?"dd",?"策劃人員");return?dcd;}public?static?JFreeChart?createChart(DefaultCategoryDataset?dcd)?{JFreeChart?chart?=?ChartFactory.createBarChart3D("公司人員分布圖",?"人員分布","人員數量",?dcd,?PlotOrientation.VERTICAL,?true,?false,?false);//設置chart的主題字體 chart.setTitle(new?TextTitle("某公司人員分布圖",?new?Font("隸書",?Font.BOLD,?32)));CategoryPlot?plot?=?(CategoryPlot)?chart.getPlot();//設置橫軸的字體 CategoryAxis?cateAxis?=?plot.getDomainAxis();cateAxis.setLabelFont(new?Font("隸書",?Font.BOLD?+?Font.ITALIC,?14));//設置縱軸的字體 ValueAxis?valueAxis=?plot.getRangeAxis();valueAxis.setLabelFont(new?Font("隸書",?Font.BOLD?+?Font.ITALIC,?14));//說明部分的字體,對應于"aa","bb","cc","dd"的字體 LegendTitle?legend?=?chart.getLegend();legend.setItemFont(new?Font("宋體",?Font.BOLD?+?Font.ITALIC,?14));return?chart;}public?static?JPanel?createPanel(){JFreeChart?chart?=?createChart(createCategory());return?new?ChartPanel(chart);}public?static?void?main(String[]?args)?{TestJFreeChart2_1?chart?=?new?TestJFreeChart2_1("某公司");chart.pack();chart.setVisible(?true?);}}

      運行效果:

      3.

      保存JFreeChart生成的圖片到本地磁盤

      在第一部分中紅色標記出添加代碼:

      //保存為JPEG格式的圖片 //?OutputStream?os1?=?new?FileOutputStream("abcd.jpeg"); //?ChartUtilities.writeChartAsJPEG(os1?,?chart?,?800?,?600?); //保存為PNG格式的圖片 OutputStream?os2?=?new?FileOutputStream("abcd.png");ChartUtilities.writeChartAsPNG(?os2?,?chart?,?800?,?600?);

      注:

      保存成JPEG格式的圖片被渲染上了一層橙色,PNG格式的圖片沒有被渲染

      4.

      在網頁上顯示JFreeChart生成的圖片

      1.

      Struts2學習筆記18:JFreeChart

      導入相關的包

      2.

      修改web.xml文件,添加如下代碼:(該代碼可以從API文檔中獲取)

      DisplayChartorg.jfree.chart.servlet.DisplayChartDisplayChart/DisplayChart

      3.

      新建jfreechart.jsp頁面寫入一下代碼:

      <%@?page?language="java"?contentType="text/html;?charset=GB18030"pageEncoding="GB18030"%><%@?page?import="org.jfree.data.general.DefaultPieDataset"%><%@?page?import="org.jfree.chart.JFreeChart"%><%@?page?import="org.jfree.chart.ChartFactory"%><%@?page?import="org.jfree.chart.plot.PiePlot"%><%@?page?import="java.awt.Font"%><%@page?import="org.jfree.chart.servlet.ServletUtilities;"%>Insert?title?here<%%><%DefaultPieDataset?dpd?=?new?DefaultPieDataset();dpd.setValue("管理人員",?30);dpd.setValue("開發人員",?50);dpd.setValue("銷售人員",?42);dpd.setValue("策劃人員",?15);JFreeChart?chart?=?ChartFactory.createPieChart("公司人員分布圖",?dpd,true,?true,?true);PiePlot?plot?=?(PiePlot)?chart.getPlot();plot.setLabelFont(new?Font("隸書",?Font.BOLD?+?Font.ITALIC,?14));//ChartFrame?cf?=?new?ChartFrame("某公司人員分布圖",?chart); //返回文件名filename,圖片位于tomcat的臨時目錄下 String?fileName1?=?ServletUtilities.saveChartAsPNG(chart,?800,?600,?session);String?url1?=?request.getContextPath()?+?"/DisplayChart?filename="?+??fileName1;//String?fileName2?=?ServletUtilities.saveChartAsJPEG(chart?,?800?,?600?,?session?); //String?url2?=?request.getContextPath()?+?"/DisplayChart?filename="?+??fileName2; %>"?width="800"?height="600"/>

      /

      //注:我裝的IE?7.0?不支持?JPEG格式的圖片,支持PNG格式的圖片

      //但是?火狐瀏覽器支持JPEG與PNG格式的圖片

      Struts

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:辦公表格軟件excel圖片(office表格圖片)
      下一篇:年度財務報表表格(年度會計報表)
      相關文章
      亚洲一区二区三区乱码在线欧洲| 亚洲专区在线视频| 亚洲精品国精品久久99热一| 婷婷国产偷v国产偷v亚洲| 久久亚洲日韩精品一区二区三区| 亚洲精品福利视频| 亚洲Av无码精品色午夜| 亚洲欭美日韩颜射在线二| 亚洲色无码专区在线观看| 亚洲中文字幕久久精品无码APP| JLZZJLZZ亚洲乱熟无码| 国产性爱在线观看亚洲黄色一级片 | 国产亚洲精品美女2020久久| 精品无码专区亚洲| 日韩亚洲综合精品国产| 国产午夜亚洲精品不卡| 亚洲精品国产精品乱码不卞 | 亚洲毛片不卡av在线播放一区| 伊人久久亚洲综合影院| 亚洲精品一级无码鲁丝片| 亚洲综合精品网站| 国产亚洲av片在线观看16女人| 亚洲成av人在线视| 久久精品国产亚洲AV无码娇色 | 亚洲国产精品乱码在线观看97| 激情综合亚洲色婷婷五月APP| 亚洲色偷偷色噜噜狠狠99| 日韩色视频一区二区三区亚洲| 亚洲高清无码专区视频| 国产亚洲精品看片在线观看| 欧洲亚洲国产清在高| 久久精品九九亚洲精品| 亚洲av无码片区一区二区三区| 亚洲综合成人婷婷五月网址| 青草久久精品亚洲综合专区| 亚洲精品无码日韩国产不卡?V| 国产亚洲综合色就色| 18gay台湾男同亚洲男同| 亚洲男人的天堂久久精品| 亚洲AV日韩AV一区二区三曲| 亚洲精品成人a在线观看|