精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java最佳圖形解決方案 JFreeChart學習總結

開發 后端
自己最近學習了JfreeChart的使用,覺得這個冬冬的功能非常強大,總結一下。主要介紹JfreeChart生成圖片的幾種方式。

自己最近學習了JfreeChart的使用,覺得這個冬冬的功能非常強大,總結一下。主要介紹JfreeChart生成圖片的幾種方式。

先從網上找點介紹。

一、簡介

WW 的發展使得基于因特網的應用程序不再局限于靜態或者簡單的動態內容提供。傳統的一些以軟件包形式發布應用程序例如報表系統等都在逐漸搬到因特網上。但是這兩者之間有著天壤之別,雖然對于數據獲取、業務處理等方面基本類似,但是***的差別在于用戶界面。為了能在web瀏覽器上顯示要求用戶界面使用 HTML以及圖片的方式來展現數據,而傳統的一些利用操作系統本身的控件來開發的用戶界面無法適應琳瑯滿目的客戶端,因此在這里也變得無能為力。回到本文的題目上來,為了創建一個可以在web瀏覽器上查看到圖表一般有兩種做法:***種就是使用applet利用java本身對圖形的支持來顯示一個圖表;第二 種就是直接在web服務器端生成好圖表圖片文件后發送給瀏覽器。***種方式顯然對于客戶端要求太高,隨著現在主流瀏覽器放棄對JAVA的支持后,這種方式 只適合一些局域網的應用,而對于因特網的環境就顯得不太適合。因此我們下面將介紹一個JAVA的圖表引擎JFreeChart用來產生基于WEB的圖表。

JFreeChart 項目簡介 JFreeChart是開放源代碼站點SourceForge.net上的一個JAVA項目,它主要用來各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普 通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。這些不同式樣的圖表基本上可以滿足目前的要求。

二、JFreeChart獲取

JFreeChart 是JFreeChart公司在開源網站SourceForge.net上的一個項目,該公司的主要產品有如下:

1.JFreeReport :報表解決工具

2.JFreeChart:Java 圖形解決方案(Application/Applet/Servlet/Jsp)

3.JCommon :JFreeReport和JFreeChart的公共類庫

4.JFreeDesigner :JFreeReport的報表設計工具

我們可以從jfree官方網站上獲取***版本和相關資料(但是jfree的document需要40美金才能獲取),

獲取地址:http://www.jfree.org/jfreechart/index.html(同時可以獲得簡明介紹)

我們以當前***版本:jfreechart-1.0.1.zip為例子進行說明。

三、JFreeChart配置安裝

1 、解壓jfreechart-1.0.1.zip.zip到指定位置,其中source是jfreechart的源碼,jfreechart-1.0.1-demo.jar 是例子程序,可以先運行一下看看各種效果,就知道他的nb之處了。

2 、為了配置成功,我們需要關注的文件有如下三個:

設置classpath。加入下面三個jar包。

jfreechart-1.0.1.jar 、jcommon-1.0.0.jar、gnujaxp.jar

加上第三個jar包有時web.xml會報錯,把它去掉就好了。

至此jfreechart的配置就完成了,下面就可以進行jfreechart的開發了。這里值得提出的是jfreechart的類結構設計前后兼容性不是很好,不同版本的jfreechart中類庫結構可能不一樣,有時候可能需要查源碼。如果是中文顯示的時候可能依據觀感需要改變源碼的字體。

四、JFreeChart功能介紹

JFreeChart 目前是***的java圖形解決方案,基本能夠解決目前的圖形方面的需求,主要包括如下幾個方面:

pie charts (2D and 3D) :餅圖(平面和立體)

bar charts (regular and stacked, with an optional 3D effect) :柱狀圖

line and area charts :曲線圖

scatter plots and bubble charts

time series, high/low/open/close charts and candle stick charts :時序圖

combination charts :復合圖

Pareto charts

Gantt charts :甘特圖

wind plots, meter charts and symbol charts

wafer map charts

( 態圖表,餅圖(二維和三維) , 柱狀圖 ( 水平,垂直),線圖,點圖,時間變化圖,甘特圖, 股票行情圖,混和圖, 溫度計圖, 刻度圖等常用商用圖表)

圖形可以導出成PNG和JPEG格式,同時還可以與PDF和EXCEL關聯

JFreeChart 核心類庫介紹:

研究jfreechart源碼發現源碼的主要由兩個大的包組成:org.jfree.chart,org.jfree.data。其中前者主要與圖形本身有關,后者與圖形顯示的數據有關。具體研究如果大家有興趣的話可以自己研究 。

核心類主要有:

org.jfree.chart.JFreeChart :圖表對象,任何類型的圖表的最終表現形式都是在該對象進行一些屬性的定制。JFreeChart引擎本身提供了一個工廠類用于創建不同類型的圖表對象

org.jfree.data.category.XXXDataSet: 數據集對象,用于提供顯示圖表所用的數據。根據不同類型的圖表對應著很多類型的數據集對象類

org.jfree.chart.plot.XXXPlot :圖表區域對象,基本上這個對象決定著什么樣式的圖表,創建該對象的時候需要Axis、Renderer以及數據集對象的支持

org.jfree.chart.axis.XXXAxis :用于處理圖表的兩個軸:縱軸和橫軸

org.jfree.chart.render.XXXRender :負責如何顯示一個圖表對象

org.jfree.chart.urls.XXXURLGenerator: 用于生成Web圖表中每個項目的鼠標點擊鏈接

XXXXXToolTipGenerator: 用于生成圖象的幫助提示,不同類型圖表對應不同類型的工具提示類

個人感覺JFreeChart可以滿足大部分圖片創建的需要,美中不足的是:對字體的設置做的不夠好,特別是使用中文的時候字體很不清晰。因為這個原因建議你自己去修改他的源代碼,***使用properties文件去設置字體.還有就是文檔要錢所以要多花點時間去看源代碼。或多上社區。

五.開始開發

對JfreeChart有了初步了解并做好準備工作之后,開始作例子程序試驗。在這里我只介紹餅圖的做法,而這張圖采用不同的方式進行輸出,其他類型的圖片可以參考jfreechart提供的例子,做法都差不多。

1、直接生成圖片

  1. public class PieChartPicture {  
  2. public static void main(String[] args)   
  3. {  
  4.  PieDataset dataset = getDataSet();  
  5.  JFreeChart chart = ChartFactory.createPieChart3D(  
  6.     " 項目進度分布"// chart title  
  7.     dataset,// data  
  8.     true,// include legend  
  9.     true,  
  10.     false 
  11.    );  
  12.   PiePlot3D  plot=(PiePlot3D)chart.getPlot();  
  13.     // 圖片中顯示百分比:默認方式  
  14.     //plot.setLabelGenerator(new           StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));  
  15. // 圖片中顯示百分比:自定義方式,{0} 表示選項, {1} 表示數值, {2} 表示所占比例 ,小數點后兩位  
  16.  plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));   
  17. // 圖例顯示百分比:自定義方式, {0} 表示選項, {1} 表示數值, {2} 表示所占比例                  
  18.  plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));   
  19. // 設置背景色為白色   
  20. chart.setBackgroundPaint(Color.white);   
  21. // 指定圖片的透明度(0.0-1.0)   
  22.  plot.setForegroundAlpha(1.0f);   
  23. // 指定顯示的餅圖上圓形(false)還橢圓形(true)   
  24. plot.setCircular(true);   
  25. // 設置圖標題的字體   
  26. Font font = new Font(" 黑體",Font.CENTER_BASELINE,20);   
  27. TextTitle title = new TextTitle(" 項目狀態分布");   
  28. title.setFont(font);    
  29. chart.setTitle(title);   
  30. FileOutputStream fos_jpg = null;   
  31. try {   
  32.      fos_jpg=new FileOutputStream("D:\\ 項目狀態分布.jpg");   
  33.      ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,640,480,null);   
  34.      fos_jpg.close();   
  35. catch (Exception e) {   
  36.  }   
  37. }   
  38. private static PieDataset getDataSet() {   
  39. DefaultPieDataset dataset = new DefaultPieDataset();   
  40. dataset.setValue(" 市場前期"new Double(10));   
  41. dataset.setValue(" 立項"new Double(15));   
  42. dataset.setValue(" 計劃"new Double(10));   
  43. dataset.setValue(" 需求與設計"new Double(10));   
  44. dataset.setValue(" 執行控制"new Double(35));   
  45. dataset.setValue(" 收尾"new Double(10));   
  46. dataset.setValue(" 運維",new Double(10));   
  47. return dataset;          
  48. }  
  49. }  

2、采用servlet和struts的action方式輸出

采用這種方式輸出,不用生成圖片。

1)servlet輸出

  1. public class PieByServlet extends HttpServlet{   
  2. public void service(ServletRequest req, ServletResponse res)   
  3. throws ServletException, IOException   
  4. {   
  5.    res.setContentType("image/jpeg");   
  6.    PieDataset dataset = getDataSet();   
  7.    JFreeChart chart = ChartFactory.createPieChart3D(   
  8.    " 水果餅圖"// chart title   
  9.    dataset,// data   
  10.    true// include legend   
  11.    true,   
  12.    false );   
  13.    //設置圖表屬性  
  14. // 輸出圖片   
  15.  ChartUtilities.writeChartAsJPEG(res.getOutputStream(),100,chart,800,600,null);   
  16. }  

2)struts的action方式輸出

只將這條語句加上try catch即可,并返回null。

  1. try{         
  2. ChartUtilities.writeChartAsJPEG(response.getOutputStream(),100,chart,800,600,null);   
  3.  } catch (Exception e) {   
  4. }  
  5. return null;  

其實采用這兩種方式與生成圖片的方式改動并不大

加上語句response.setContentType("image/jpeg");

ChartUtilities.writeChartAsJPEG(new FileOutputStream("D:\\ 項目狀態分布.jpg");,100,chart,640,480,null);

文件流改成response的輸出流就可以了

hartUtilities.writeChartAsJPEG(response.getOutputStream(),100,chart,800,600,null);

#p#

3、jsp+servlet+javabean方式

1)Create ChartViewer servlet

  1. public class ChartViewer extends HttpServlet {   
  2. public void init() throws ServletException {  
  3. }   
  4. //Process the HTTP Get request  
  5. public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {   
  6. // get the chart from session  
  7. HttpSession session = request.getSession();   
  8. BufferedImage chartImage = (BufferedImage) session.getAttribute("chartImage");   
  9. // set the content type so the browser can see this as a picture   
  10. response.setContentType("image/png");   
  11. // send the picture   
  12. PngEncoder encoder = new PngEncoder(chartImage, false09);   
  13. response.getOutputStream().write(encoder.pngEncode());  
  14. }   
  15. //Process the HTTP Post request   
  16. public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {   
  17. doGet(request, response);   
  18. }   
  19. //Process the HTTP Put request   
  20. public void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   
  21. }   
  22. //Clean up resources   
  23. public void destroy() { }   
  24. }  

2)Create a servlet map in web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <web-app>   
  3.  <servlet>   
  4.  <servlet-name>ChartViewer</servlet-name>   
  5.  <servlet-class>myapp.webwork.servlets.ChartViewer</servlet-class>   
  6. </servlet>   
  7. <servlet-mapping>   
  8. <servlet-name>ChartViewer</servlet-name>   
  9. <url-pattern>/servlet/ChartViewer</url-pattern>   
  10. </servlet-mapping>   
  11. </web-app>  

3)Create a chart in a java bean (Pie3DDemo.java)

  1. public class Pie3DDemo {   
  2. private DefaultPieDataset getDataset() {   
  3. // categories...   
  4. String[] section = new String[] { "Jan","Feb","Mar","Apr","May","Jun""Jul","Aug","Sep","Oct","Nov","Dec" };   
  5. // data...   
  6. double[] data = new double[section.length];   
  7.  for (int i = 0; i < data.length; i++) {   
  8.      data[i] = 10 + (Math.random() * 10);   
  9. }   
  10. // create the dataset...   
  11. DefaultPieDataset dataset = new DefaultPieDataset();   
  12. for (int i = 0; i < data.length; i++) {   
  13.        dataset.setValue(section[i], data[i]);   
  14. }   
  15. return dataset;   
  16. }   
  17. public String getChartViewer(HttpServletRequest request, HttpServletResponse response) {   
  18.  DefaultPieDataset dataset = getDataset();   
  19. // create the chart...   
  20.  JFreeChart chart = ChartFactory.createPie3DChart(   
  21.   "Pie3D Chart Demo",  // chart title   
  22.   dataset,             // data   
  23.   true,                // include legend   
  24.   true,   
  25.   false   
  26.  );   
  27. // set the background color for the chart...   
  28. chart.setBackgroundPaint(Color.cyan);   
  29. PiePlot plot = (PiePlot) chart.getPlot();   
  30. plot.setNoDataMessage("No data available");   
  31. // set drilldown capability...   
  32.  plot.setURLGenerator(new StandardPieURLGenerator("Bar3DDemo.jsp","section"));   
  33. plot.setLabelGenerator(null);   
  34. // OPTIONAL CUSTOMISATION COMPLETED.   
  35. ChartRenderingInfo info = null;   
  36. HttpSession session = request.getSession();   
  37. try {   
  38. //Create RenderingInfo object   
  39.  response.setContentType("text/html");   
  40.  info = new ChartRenderingInfo(new StandardEntityCollection());   
  41.  BufferedImage chartImage = chart.createBufferedImage(640400, info);   
  42. // putting chart as BufferedImage in session,   
  43. // thus making it available for the image reading action Action.   
  44. session.setAttribute("chartImage", chartImage);   
  45. PrintWriter writer = new PrintWriter(response.getWriter());   
  46. ChartUtilities.writeImageMap(writer, "imageMap", info);   
  47. writer.flush();   
  48. catch (Exception e) { }   
  49.  
  50. String pathInfo = "http://";   
  51. pathInfo += request.getServerName();   
  52. int port = request.getServerPort();   
  53. pathInfo += ":"+String.valueOf(port);   
  54. pathInfo += request.getContextPath();   
  55. String chartViewer = pathInfo + "/servlet/ChartViewer";   
  56. return chartViewer;   
  57. }  

4)頁面

  1. <html>   
  2. <head>   
  3. <title>Pie Chart Demo</title>   
  4. </head>   
  5. <jsp:useBeanidjsp:useBeanid="myChart"scope="session"class="myapp.webwork.beans.Pie3DDemo" />   
  6. <body>   
  7. <h2>Pie Chart Demo</h2>   
  8. <%String chartViewer = myChart.getChartViewer(request, response);%>   
  9. <img src="<%=chartViewer%>" border=0 usemap="#imageMap">   
  10. </body>   
  11. </html>  

4、采用工具類ChartUtil和DisplayChart(jfreechart的servlet)輸出

我用了上面的幾個方法輸出圖片,發現頁面里只能輸出一個圖片,不過下面的方法可以輸出多個圖片,而且是幾種方式中最簡單的一個,推薦使用。

這種方式和上面的三種比較類似,是將javabean里的生成圖片的方法寫的一個工具類ChartUtil里面。

1)添加工具類ChartUtil

public class ChartUtil {

// 產生時間序列圖,返回圖片名稱

  1. public  static String generatePieChart(DefaultPieDataset dataset,String title,int width,int height,HttpSession session, PrintWriter pw) {   
  2.  
  3. String filename = null;   
  4.  try {   
  5.  if (session != null)   
  6.  {   
  7. ChartDeleter deleter = (ChartDeleter)session.getAttribute("JFreeChart_Deleter");   
  8.  session.removeAttribute("JFreeChart_Deleter");   
  9.  session.setAttribute("JFreeChart_Deleter", deleter);   
  10. }   
  11. JFreeChart chart = ChartFactory.createPieChart3D(   
  12. title,  // chart title   
  13. dataset, // data   
  14. true,  // include legend   
  15. true,   
  16. false );   
  17. //  Write the chart image to the temporary directory   
  18. ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());   
  19. //If the last parameter is null, the chart is a "one time"-chart and will be deleted after the first serving.   
  20. //If the last parameter is a session object, the chart remains until session time out.   
  21. filename = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);   
  22. //  Write the image map to the PrintWriter   
  23.  ChartUtilities.writeImageMap(pw, filename, info,true);   
  24.  pw.flush();   
  25. catch (Exception e) {   
  26.  System.out.println("Exception - " + e.toString());   
  27.  e.printStackTrace(System.out);   
  28.  filename = "picture_error.png"; }   
  29. return filename;   
  30. }   
  31. }  

2)在action里統計數據,設置好數據集dataset。傳到頁面

3)在頁面里取出

DefaultPieDataset piedataset=(DefaultPieDataset)request.getAttribute("piedataset");

// 用ChartUtil工具類產生圖片

  1. String p = ChartUtil.generatePieChart(piedataset," 項目收支線圖",500,300,nullnew PrintWriter(out));   
  2. String p1 = request.getContextPath() + "/servlet/DisplayChart?filename=" + p;  

通過以下方式輸出

  1. <td><img src="<%= p1 %>" width=500 height=300 border=0 usemap="#<%= p %>"></td> 

4)在web.xml中添加

  1. <servlet> 
  2.   <servlet-name>DisplayChart</servlet-name> 
  3.   <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> 
  4. </servlet> 
  5. <servlet-mapping> 
  6.     <servlet-name>DisplayChart</servlet-name> 
  7.     <url-pattern>/servlet/DisplayChart</url-pattern> 
  8. </servlet-mapping> 

***pplicationFrame 方式

  1. public class PieChartDemo1 extends ApplicationFrame {   
  2. public PieChartDemo1(String title) {   
  3. super(title);   
  4. setContentPane(createDemoPanel());   
  5. }   
  6. private static JFreeChart createChart(PieDataset dataset) {   
  7. JFreeChart chart = ChartFactory.createPieChart(   
  8. .......  
  9. return chart;   
  10. }   
  11.  
  12. public static JPanel createDemoPanel() {   
  13. JFreeChart chart = createChart(createDataset());   
  14. return new ChartPanel(chart);   
  15. }   
  16.  
  17. public static void main(String[] args) {   
  18. PieChartDemo1 demo = new PieChartDemo1("Pie Chart Demo 1");   
  19. demo.pack();   
  20. RefineryUtilities.centerFrameOnScreen(demo);   
  21. demo.setVisible(true);   
  22. }   
  23. }  

六、可參考資料與網址

官方網站

http://www.jfree.org/jfreechart/index.html

官方論壇

http://www.jfree.org/phpBB2/index.php

API 文檔

http://www.jfree.org/jfreechart/api/gjdoc/index.html

中文API

http://blog.sina.com.cn/u/405da78d010000ap

好了,嘮叨了這么多,自己寫了一些,從網上找了一些,真的很累啊。

原文鏈接:http://ltc603.iteye.com/blog/30207

【編輯推薦】

  1. Java精確截取字符串
  2. Java I/O系統基礎知識
  3. Java 遠程文件對接
  4. Java生成樹結構各點之間最短路徑算法
  5. Java字符編碼根本原理
責任編輯:林師授 來源: java蟲的博客
相關推薦

2011-12-21 14:46:26

JavaJFreeChart

2011-12-21 13:52:27

JavaJFreeChart

2011-12-21 13:35:39

JavaJFreeChart

2011-12-21 12:58:41

JavaJFreeChart

2011-12-21 14:15:08

JavaJFreeChart

2011-12-21 13:44:33

JavaJFreeChart

2011-12-21 13:25:33

JavaJFreeChart

2011-12-21 14:34:33

JavaJFreeChart

2011-12-21 12:46:43

2011-12-09 11:13:17

2009-10-15 10:29:03

布線系統解決方案

2010-10-20 16:01:29

網絡管理解決方案網絡管理

2011-09-28 14:11:21

2009-02-19 10:13:00

2009-02-18 17:15:51

Fedora 10多媒體播放解決方案

2018-08-21 10:32:43

數據庫Redis高可用技術

2010-09-06 11:11:27

微軟關鍵任務

2009-04-03 11:26:12

AMD上海皓龍

2009-07-01 17:16:12

2015-08-06 17:04:16

Cocos Play手機頁游
點贊
收藏

51CTO技術棧公眾號

国产色在线视频| 亚洲自拍偷拍图| 欧美a级在线观看| 97精品电影院| 国产日韩欧美中文| 欧美精品一级片| 蜜臀av免费一区二区三区| 欧美三级在线播放| 国产一级做a爰片久久毛片男| 天堂av电影在线观看| 日本不卡一区二区| 久久久久中文字幕2018| 成人在线一级片| 综合激情久久| 在线观看视频欧美| 香港三级日本三级a视频| 国产高清一级毛片在线不卡| 国产精品18久久久| 国产精品免费在线免费| 久久精品女人毛片国产| 欧美gayvideo| 亚洲日本成人女熟在线观看 | 色欲一区二区三区精品a片| 盗摄系列偷拍视频精品tp| 欧美日韩精品一区二区三区| 亚洲中文字幕无码中文字| 伊人电影在线观看| 中文字幕巨乱亚洲| 蜜桃久久精品乱码一区二区 | 永久免费看片在线播放| 婷婷综合激情| 最新中文字幕亚洲| 中文字幕第4页| 国产一区调教| 精品成人一区二区三区四区| 亚洲精品在线网址| 国产精品毛片无码| 欧美男人的天堂一二区| 亚洲福利精品视频| 日韩欧美一区二区三区免费观看 | 日韩国产专区| 亚洲美女在线观看| 第四色在线视频| 91精品国产自产精品男人的天堂| 欧美精品日韩一本| 高清一区在线观看| 成人午夜毛片| 欧美色图片你懂的| 少妇黄色一级片| 成人自拍av| 在线看日韩精品电影| 国产wwwxx| 国产成人77亚洲精品www| 欧洲人成人精品| 成人3d动漫一区二区三区| 亚洲天堂一区二区| 欧美性色黄大片| 国产高清视频网站| www.久久久久爱免| 日韩视频免费观看高清完整版在线观看| 老司机久久精品| www久久久| 精品久久一区二区三区| 国产a√精品区二区三区四区| 福利电影一区| 日韩第一页在线| 欧美图片一区二区| 色一区二区三区四区| 久久精品一本久久99精品| 国产97免费视频| 亚洲国产激情| 国产成人久久久精品一区| 中文字幕一区二区三区四区免费看| 麻豆免费看一区二区三区| 91九色蝌蚪国产| 国产福利第一视频| 99久久久免费精品国产一区二区 | 国产免费a级片| 国产欧美三级电影| 亚洲无限av看| 国产极品国产极品| 亚洲神马久久| 国产精品亚发布| 精品国产九九九| 99久久99久久久精品齐齐| 日本一区二区在线| 91麻豆一二三四在线| 亚洲777理论| 无遮挡又爽又刺激的视频| 成人黄色毛片| 亚洲国产精品一区二区三区| 日本一区二区视频在线播放| 欧美精选在线| 国产精品69久久| www.av导航| 国产三级一区二区| 久久福利一区二区| 在线观看精品| 精品国产乱码久久久久久蜜臀 | 亚洲色大成网站www久久九九| 国产欧美日韩小视频| 国产精品久久乐| 亚洲国产日韩一区| 国产男女猛烈无遮挡在线喷水| 9色精品在线| 成人激情综合网| 日本天堂影院在线视频| 亚洲男同性视频| 久章草在线视频| 99re热精品视频| 色先锋资源久久综合5566| 国产午夜视频在线播放| 老司机精品视频一区二区三区| 国产在线一区二| 毛片av在线| 91成人免费网站| 国产精品九九视频| 欧美黄色精品| 国产欧亚日韩视频| 免费资源在线观看| 亚洲成人激情av| 国产乱叫456| 欧美三级美国一级| 欧美一级视频一区二区| 亚洲欧美激情另类| 一区二区三区四区不卡视频| 欧美美女一级片| 精品国产一区探花在线观看| 欧美亚洲视频在线观看| 人妻精品一区二区三区| 亚洲另类在线一区| 中文字幕一区二区在线观看视频| 欧美日韩老妇| 国产成人精品免费视频| 天堂a√在线| 欧美视频在线视频| 在线观看亚洲免费视频| 欧美人成网站| 91青青草免费观看| 污污视频在线| 欧美va日韩va| 精品无码久久久久久久| 丁香桃色午夜亚洲一区二区三区| 国产日韩第一页| 高清一区二区中文字幕| 麻豆国产精品va在线观看不卡| 91影院在线播放| 亚洲欧洲日本在线| 色网站在线视频| 久久久久美女| 91黄在线观看| 免费在线观看的电影网站| 日韩一级大片在线| 国产性生活网站| 成人综合婷婷国产精品久久蜜臀| 欧美日韩dvd| 中文无码日韩欧| 97视频免费在线看| 久草视频视频在线播放| 在线视频国产一区| 中国1级黄色片| 国产另类ts人妖一区二区| 日韩亚洲欧美一区二区| 好吊妞视频这里有精品| 97色在线视频| yourporn在线观看中文站| 欧美日韩精品一区二区三区蜜桃| 午夜免费激情视频| 岛国精品在线观看| 干日本少妇首页| 精品日韩欧美一区| 亚洲va国产va天堂va久久| 成人在线免费观看黄色| 日韩精品一区二区三区第95| 正在播放木下凛凛xv99| 亚洲视频免费在线| 国产极品一区二区| 久久青草久久| 成人短视频在线看| 欧美成人专区| 国产日产久久高清欧美一区| 青青草视频在线免费直播| 亚洲精品狠狠操| 亚洲免费视频二区| 一区二区三区久久| 国产交换配乱淫视频免费| 精品一二三四区| www在线观看免费| 久久国产亚洲| 国产一区二区三区四区五区在线 | 亚洲一区黄色| 中文字幕精品一区日韩| 天堂资源在线亚洲| 91夜夜揉人人捏人人添红杏| 国产美女高潮在线| 精品国产一区二区三区在线观看 | 国产精品久久久久久久久久免费看| 波多野结衣网页| 老牛国产精品一区的观看方式| 中文字幕乱码免费| 欧美码中文字幕在线| 国产伦精品一区二区三区免费视频 | 手机av在线网站| 国产一区二区三区的电影| 手机福利在线视频| 激情五月综合| 国产伦视频一区二区三区| 91另类视频| 2019av中文字幕| jizzjizz亚洲| 中文国产亚洲喷潮| 日本一级在线观看| 亚洲国产精品va在线| 国产伦精品一区二区三区免.费| 懂色av一区二区三区| 九九视频在线免费观看| 国产精品的网站| 中文字幕第24页| 久久久影视传媒| 中文在线永久免费观看| 国产精品小仙女| 五月天婷婷影视| 男人的天堂久久精品| 18禁男女爽爽爽午夜网站免费| 在线看片一区| 国产精品久久国产| 亚洲一区二区日韩| 中文精品一区二区三区| 日韩欧美视频专区| 翔田千里亚洲一二三区| 欧美男gay| 久久偷看各类wc女厕嘘嘘偷窃| 北条麻妃一区二区三区在线观看| 91牛牛免费视频| 四虎影视国产精品| 国产在线观看不卡| 黄色成人在线观看网站| 国产综合在线观看视频| 黄色欧美视频| 成人激情视频网| 国产精品白丝久久av网站| 国产精自产拍久久久久久| 国产精品久久久久久吹潮| 国产精品高潮呻吟久久av黑人| 3d性欧美动漫精品xxxx软件| 国产成人精品一区二区在线| 一二区成人影院电影网| 国产精品久久久久久av福利软件 | 欧美久久久久久久| 九色精品国产蝌蚪| 日本精品一区二区三区不卡无字幕| 一本色道久久综合狠狠躁的番外| 欧美午夜欧美| 久久视频国产| 特大黑人娇小亚洲女mp4| 欧美日韩亚洲一区在线观看| 丁香色欲久久久久久综合网| 狠狠久久婷婷| 欧美s码亚洲码精品m码| 久久精品女人天堂| 国产黄色特级片| 奇米影视一区二区三区小说| 久热精品在线播放| 国产激情一区二区三区四区| 国产视频精品视频| 久久久99精品免费观看不卡| 欧美巨胸大乳hitomi| 亚洲精品亚洲人成人网在线播放| 久久中文字幕无码| 日韩欧美国产一区二区| 中文字幕一区二区三区波野结| 欧美一区二区三区免费观看视频| 亚洲老妇色熟女老太| 亚洲欧美另类在线观看| 欧美极品另类| 国内精品400部情侣激情| 日本欧美日韩| 97人人模人人爽人人喊38tv| 青青草久久爱| 中文字幕中文字幕在线中一区高清| 欧美日韩中文| 国产男女激情视频| 韩日av一区二区| 久久精品老司机| 亚洲免费在线视频| 国产日产精品一区二区三区| 欧美日韩mp4| 无码h黄肉3d动漫在线观看| 一区三区二区视频| av中文在线资源库| 成人免费看黄网站| 亚洲资源网你懂的| 男女激烈动态图| 老牛影视一区二区三区| av影片在线播放| 国产欧美精品在线观看| 久久午夜无码鲁丝片午夜精品| 在线观看国产精品网站| 韩国av在线免费观看| 久久精品2019中文字幕| 成人自拍av| 国产三区二区一区久久| 五月精品视频| 99免费视频观看| 国产盗摄女厕一区二区三区| 1024手机在线观看你懂的| 天天射综合影视| 99久久国产热无码精品免费| 尤物精品国产第一福利三区| 97人人在线视频| 亚洲一区二区三| 成人一二三区| 超碰网在线观看| 成人在线一区二区三区| 日本精品在线免费观看| 在线一区二区三区做爰视频网站| 亚洲欧洲精品视频| 欧美贵妇videos办公室| 亚洲精品777| 日韩精品一区二区三区丰满 | 亚洲精品免费电影| 在线观看一二三区| 亚洲欧美中文字幕| 亚洲妇女成熟| 九九九九久久久久| 激情视频一区| 99久久久无码国产精品性波多 | caoporn国产一区二区| 欧美日韩综合一区二区| 欧美日韩国产成人在线91| 国产在线视频网址| 国产精品777| 精品视频亚洲| 国产精品igao| 中文字幕精品综合| 欧美成人一区二区三区四区| 亚洲女人天堂视频| 日韩福利一区| 免费不卡亚洲欧美| 免费在线欧美黄色| 永久免费看mv网站入口78| 黑丝美女久久久| 欧美日韩免费做爰大片| 国产va免费精品高清在线| 丝袜连裤袜欧美激情日韩| 精品国产免费av| 久久一区二区三区国产精品| 无码人妻av一区二区三区波多野| 亚洲日本成人女熟在线观看| 日韩精品专区| 亚洲狠狠婷婷综合久久久| 精品系列免费在线观看| 99久久婷婷国产综合| 日韩一区二区电影在线| 亚洲综合伊人久久大杳蕉| 国产chinese精品一区二区| 在线观看视频免费一区二区三区| 欧美bbbbb性bbbbb视频| 色婷婷综合久久久久中文| 国产区在线视频| 成人激情电影一区二区| 黄色成人av网站| 女尊高h男高潮呻吟| 在线免费观看成人短视频| 欧美成人三区| 成人国产1314www色视频| 亚洲激情亚洲| 欧美黄色激情视频| 欧美久久一二区| 嗯啊主人调教在线播放视频 | 国产鲁鲁视频在线观看免费| 国产精选久久久久久| 国产精品v日韩精品v欧美精品网站 | 人妖精品videosex性欧美| 欧美日中文字幕| 真实乱偷全部视频| 日韩欧美一区二区在线| 天堂中文8资源在线8| 高清av免费一区中文字幕| 久久国产精品久久w女人spa| 国产在线免费看| 亚洲精品福利在线| 亚洲ww精品| 欧美视频在线观看网站| 国产精品久久久久久久久果冻传媒| 免费观看国产精品| 国产精品白嫩初高中害羞小美女| 91成人精品视频| 波多野结衣一本| 日韩欧美国产精品| 久久亚洲精品爱爱| 青青青青在线视频| 国产精品五月天| 无码国产精品高潮久久99| 91视频国产高清| 噜噜噜在线观看免费视频日韩 | 成人bbav| 青少年xxxxx性开放hg| 久久久国产精品午夜一区ai换脸| 国产夫绿帽单男3p精品视频|