日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JFreeChart项目实例

發布時間:2024/9/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JFreeChart项目实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近利用JFreeChart和MySQL數據庫做了一個JSP網頁,展現Android Martet全球10個國家的TOP800游戲排名的曲線走勢


準備知識,請先閱讀我先前寫的博客
JFreeChart學習示例

Linux JSP連接MySQL數據庫


需導入jar包如下:


完整代碼:

<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page language="java" import="java.sql.*" %> <%@ page language="java" import="java.io.*" %> <%@ page language="java" import="java.io.*" %> <%@ page language="java" import="java.awt.*" %> <%@ page language="java" import="org.jfree.data.*" %> <%@ page language="java" import="org.jfree.data.category.*" %> <%@ page language="java" import="org.jfree.data.general.*" %> <%@ page language="java" import="org.jfree.chart.*" %> <%@ page language="java" import="org.jfree.chart.entity.*" %> <%@ page language="java" import="org.jfree.chart.plot.*" %> <% // GLOBLE PARAMS // MySQL 連接JDBC String MYSQL_DRIVER = "com.mysql.jdbc.Driver"; String MYSQL_URL = "jdbc:mysql://localhost:3306/top800"; // 數據庫查詢語句 String chartTitle = "GameName of Country"; String sql = "select * from (select name, id, dtime, top, country, category, rating, ratingcount, download, price, version, filesize, requireandroid, url from gametop800 where name like \"%3D Bowling%\" and country = \"usa\" order by dtime desc limit 0, 2147483647) as tbl order by dtime asc"; %> <%@page import="org.jfree.chart.plot.PlotOrientation"%> <%@page import="java.util.Date"%> <%@page import="org.jfree.chart.servlet.ServletUtilities"%> <%@page import="org.jfree.chart.axis.NumberAxis"%> <%@page import="org.jfree.chart.axis.CategoryAxis"%> <%@page import="org.jfree.chart.axis.CategoryLabelPositions"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Top800 Game Free Chart Line</title> </head> <body> <center> <form method="post"> <div style="margin: auto 30px; width: 1000px" > <select name="game_type"> <option value="游戲名稱">游戲名稱</option> <option value="游戲包名">游戲包名</option> </select>: <input type="text" name="game_keyword" style="width:300px" /> ???? 所屬國家: <select name="countryname" style="width:100px"> <option value="usa">usa</option> <option value="england">england</option> <option value="france">france</option> <option value="japan">japan</option> <option value="italy">italy</option> <option value="german">german</option> <option value="india">india</option> <option value="spain">spain</option> <option value="russia">russia</option> <option value="china">china</option> <option value="eu">eu</option> </select> ???? 記錄時間: <select name="game_dtime"> <option value="全部">全部</option> <option value="最近一周">最近一周</option> <option value="最近一月">最近一月</option> </select> ???? <input type="submit" value="查詢" style="width:60px"> </div> <hr style="width: 80%" /> <% String game_type = new String("游戲名稱"); String game_keyword = "3D Bowling"; String countryname = "usa"; String game_dtime = new String("全部"); request.setCharacterEncoding("utf-8"); game_type = request.getParameter("game_type"); game_keyword = request.getParameter("game_keyword"); countryname = request.getParameter("countryname"); game_dtime = request.getParameter("game_dtime"); int limitTop = Integer.MAX_VALUE; game_type = game_type == null ? game_type = "游戲名稱" : game_type.trim(); game_keyword = game_keyword == null ? game_keyword = "3D Bowling" : game_keyword.trim(); countryname = countryname == null ? countryname = "usa" : countryname.trim(); game_dtime = game_dtime == null ? game_dtime = "全部" : game_dtime.trim(); if (game_dtime != null) { if (game_dtime.equals("全部")) { limitTop = Integer.MAX_VALUE; } else if (game_dtime.equals("最近一周")) { limitTop = 7; } else if (game_dtime.equals("最近一月")) { limitTop = 30; } else { limitTop = Integer.MAX_VALUE; } } if (game_keyword != null && game_keyword != "") { chartTitle = game_keyword + " of " + countryname; if (game_type.equals("游戲名稱")) { sql = "select * from (select name, id, dtime, top, country, category, rating, ratingcount, download, price, version, filesize, requireandroid, url from gametop800 where name like \"%" + game_keyword + "%\" and country = \"" + countryname + "\" order by dtime desc limit 0, " + limitTop + ") as tbl order by dtime asc"; } else if (game_type.equals("游戲包名")) { sql = "select * from (select name, id, dtime, top, country, category, rating, ratingcount, download, price, version, filesize, requireandroid, url from gametop800 where id = \"" + game_keyword + "\" and country = \"" + countryname + "\" order by dtime desc limit 0, " + limitTop + ") as tbl order by dtime asc"; } else { sql = "select * from (select name, id, dtime, top, country, category, rating, ratingcount, download, price, version, filesize, requireandroid, url from gametop800 where name like \"%" + game_keyword + "%\" and country = \"" + countryname + "\" order by dtime desc limit 0, " + limitTop + ") as tbl order by dtime asc"; } } else { game_type = "游戲名稱"; game_keyword = "3D Bowling"; countryname = "usa"; game_dtime = "全部"; } %> <table border="2" width="40%"> <tr> <td valign="middle"><b><%=game_type%>:</b></td> <td><%=game_keyword%> </td> </tr> <tr> <td valign="middle"><b>所屬國家:</b></td> <td><%=countryname%></td> </tr> <tr> <td valign="middle"><b>記錄時間:</b></td> <td><%=game_dtime%></td> </tr> </table> <hr style="width: 80%" /> <% DefaultCategoryDataset dataset = new DefaultCategoryDataset(); Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 連接 MySQL 數據庫 Class.forName(MYSQL_DRIVER).newInstance(); conn = DriverManager.getConnection(MYSQL_URL, "root", ""); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); // 遍歷讀取的數據集 while (rs.next()) { String name = rs.getString(1); String dtime = rs.getString(3); int top = rs.getInt(4); if (name != null && dtime != null) { dataset.addValue(top, name, dtime); // 構造JFreeChart的數據集dataset } } } catch (Exception e) { System.err.println(e.getMessage()); } JFreeChart chart = ChartFactory.createLineChart( chartTitle, // 標題 "記錄時間", // 橫軸名稱 "游戲排名", // 縱軸名稱 dataset, // 數據集 PlotOrientation.VERTICAL, // 垂直視圖 true, true, true ); final CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setBackgroundPaint(Color.lightGray); // 背景色 plot.setRangeGridlinePaint(Color.blue); // 橫軸虛線 plot.setRangeGridlinesVisible(true); // 橫軸虛線是否可見 final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRangeMinimumSize(1); // 距離為1 rangeAxis.setAutoRangeIncludesZero(true); // 從零計算 rangeAxis.setInverted(true); // 縱軸逆序(原點到頂端,是從大到小) final CategoryAxis categoryAxis = plot.getDomainAxis(); if (limitTop == 7) { categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD); // 橫軸標準顯示(水平) } else { categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 橫軸45度顯示(傾斜) } FileOutputStream fos_jpg = null; String file_jpg = null; String url_jpg = null; try { final ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); file_jpg = ServletUtilities.saveChartAsJPEG(chart, 1200, 600, info, null); // 生成圖片 url_jpg = request.getContextPath() + "/servlet/DisplayChart?filename=" + file_jpg; // 圖片路徑 } catch (Exception e) { out.println(e); } finally { try { fos_jpg.close(); } catch (Exception e) { e.printStackTrace(); } } %> <img src=<%=url_jpg%> border="1" /> <!-- 顯示圖片(url_jpg為JFreeChart生成圖片的路徑) --> <hr style="width: 80%" /> <table border="2" borderColor="#00000" cellPadding="0" cellSpacing="0" width="auto" > <tbody> <tr> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>name</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>id</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>dtime</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>top</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>country</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>category</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>rating</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>ratingcount</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>download</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>price</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>version</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>filesize</b></font></td> <td bgColor="#008080" height="28" align="center" valign="middle"> <font color="#ffffff"><b>requireandroid</b></font></td> </tr> <% try { rs = stmt.executeQuery(sql); while (rs.next()) { %> <tr> <td height="18" vAlign="middle" align="center"><a href="<%=rs.getString(14)%>" target="_blank"><%=rs.getString(1)%></a></td> <td height="18" valign="middle" align="center"><%=rs.getString(2)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(3)%></td> <td height="18" valign="middle" align="center" bgColor="#ffcc68"><%=rs.getInt(4)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(5)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(6)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(7)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(8)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(9)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(10)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(11)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(12)%></td> <td height="18" valign="middle" align="center"><%=rs.getString(13)%></td> </tr> <% } } catch (Exception e) { System.out.println(e.getMessage()); } %> </tbody> </table> <% try { rs.close(); stmt.close(); conn.close(); } catch (Exception e) { System.out.println(e.getMessage()); } %> </form> </center> </body> </html>

效果圖:



這是我們公司出品的經典休閑游戲——3D Bowling,目前已經進入Android Market全球排名前10












轉載于:https://www.cnblogs.com/springmvc-hibernate/archive/2011/10/29/2484070.html

總結

以上是生活随笔為你收集整理的JFreeChart项目实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩在线资源 | 日韩精品久久久久久久电影99爱 | 11孩岁女毛片 | 欧美啪啪一区 | 国产精久久久久 | 日韩中文字幕视频 | 欧美一级黄色录像 | 女优在线观看 | 在线能看的av | jizz91| 久久成年 | 视频区图片区小说区 | 中文字幕无线码 | 91精品国产乱码久久久久久久久 | mm131国产精品 | 影音先锋色小姐 | 亚洲免费一区 | 亚洲综合图片区 | 日韩精品一区二区亚洲av观看 | 99热网站| 成人综合网站 | 亚洲色图28p | 精品一区二区三区视频日产 | 日韩啪| 青青在线精品 | 国产成人手机在线 | 美女张开腿让人桶 | 日韩三级一区 | 国产成人三级在线观看 | 欧美国产一区二区在线观看 | 天天摸天天看 | 亚洲av女人18毛片水真多 | 高清视频在线播放 | 播放男人添女人下边视频 | 日韩美一区二区 | 日本亲与子乱ay中文 | 国产中文字幕在线观看 | 欧美在线播放一区二区 | 免费一级一片 | 91精品视频网站 | 欧美人与动物xxxx | 国产精品影音先锋 | 精品国产乱码久久久久久婷婷 | 欧美高清视频一区二区 | 亚洲色成人一区二区三区小说 | 大奶在线播放 | 欧美视频日韩视频 | 午夜在线一区二区三区 | www国产在线观看 | 欧美黑人精品一区二区不卡 | 国产精品啪啪啪视频 | 爱情岛亚洲论坛入口 | 欧美激情免费视频 | 亚洲国产精品视频一区 | 国产91久久婷婷一区二区 | 黄页网站免费观看 | 亚洲乱熟女一区二区三区小说 | 91一区二区在线 | 久久久久亚洲av无码专区体验 | 久久久久久久久久国产精品 | 久久9精品区-无套内射无码 | 欧美乱轮 | 日本美女在线 | 日韩欧美一级在线 | 国产精品丝袜在线 | 麻豆精品免费观看 | 娇喘顶撞深初h1v1 | 爱爱视频在线看 | 久久久精品电影 | 日韩欧美在线视频免费观看 | 亚洲天堂一二三 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 精品国产免费一区二区三区 | 国产精品久久毛片av大全日韩 | 久草一本 | 国产精品久久久久久一区二区 | 久久免费在线 | 中文字幕av免费观看 | 日韩视频免费在线 | 国产人免费人成免费视频 | 日本三不卡 | 玖玖玖精品| 日本一区二区不卡视频 | 毛片基地免费观看 | 午夜av在线免费观看 | 永久免费快色 | 日本成人福利视频 | 日韩精品免费在线 | 丰满人妻av一区二区三区 | 亚洲综合首页 | 91成人短视频在线观看 | 黄色片网站在线免费观看 | 男女那个视频 | 日韩精品观看 | 黄色一级免费看 | 高清亚洲| 自拍偷拍第3页 | 亚洲欧美网站 | 日韩一级免费毛片 |