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

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

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

    想飛就別怕摔

    大爺的并TM罵人

    JFreeChart自我總結

    1、餅圖、柱狀圖、折線圖生成的工具類

      1 package com.text.util;
      2 
      3 import java.awt.BasicStroke;
      4 import java.awt.Color;
      5 import java.awt.Font;
      6 import java.awt.GradientPaint;
      7 import java.io.IOException;
      8 import java.text.DecimalFormat;
      9 import java.text.NumberFormat;
     10 import java.text.SimpleDateFormat;
     11 
     12 import javax.servlet.http.HttpServletRequest;
     13 import javax.servlet.http.HttpSession;
     14 
     15 import org.jfree.chart.ChartFactory;
     16 import org.jfree.chart.JFreeChart;
     17 import org.jfree.chart.axis.CategoryAxis;
     18 import org.jfree.chart.axis.DateAxis;
     19 import org.jfree.chart.axis.ValueAxis;
     20 import org.jfree.chart.labels.ItemLabelAnchor;
     21 import org.jfree.chart.labels.ItemLabelPosition;
     22 import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
     23 import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
     24 import org.jfree.chart.labels.StandardPieToolTipGenerator;
     25 import org.jfree.chart.labels.StandardXYItemLabelGenerator;
     26 import org.jfree.chart.labels.StandardXYToolTipGenerator;
     27 import org.jfree.chart.plot.CategoryPlot;
     28 import org.jfree.chart.plot.IntervalMarker;
     29 import org.jfree.chart.plot.PiePlot;
     30 import org.jfree.chart.plot.PlotOrientation;
     31 import org.jfree.chart.plot.XYPlot;
     32 import org.jfree.chart.renderer.category.BarRenderer;
     33 import org.jfree.chart.renderer.category.BarRenderer3D;
     34 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
     35 import org.jfree.chart.servlet.ServletUtilities;
     36 import org.jfree.chart.title.LegendTitle;
     37 import org.jfree.chart.title.TextTitle;
     38 import org.jfree.data.category.CategoryDataset;
     39 import org.jfree.data.general.DefaultPieDataset;
     40 import org.jfree.data.time.TimeSeriesCollection;
     41 import org.jfree.ui.Layer;
     42 import org.jfree.ui.TextAnchor;
     43 import org.jfree.util.Rotation;
     44 
     45 /**  
     46  *<br> 文 件 名:JFreeChartServlet.java
     47  *<br> 包    名:com.report.servlet
     48  *<br> 創 建 人:
     49  *<br> 創建日期: Mar 30, 2010 1:00:23 PM
     50  *<br> 描    述:生成jFreeChart
     51  */   
     52 public class JFreeChartCreater  {
     53 
     54     /**  
     55      *<br> 方法名稱:createPieChart
     56      *<br> 功能描述:創建PieChart(餅圖)圖表
     57      *<br> 返 回 值:JFreeChart
     58      *<br> 創 建 人:
     59      *<br> 創建日期:Mar 30, 2010 12:59:07 PM
     60      *@param dataset
     61      */   
     62     public static JFreeChart createPieChart(DefaultPieDataset dataset,   
     63             String title,boolean is3D) {   
     64         JFreeChart chart=null;   
     65         if(is3D){   
     66             chart=ChartFactory.createPieChart3D(   
     67                     title, // 圖表標題   
     68                     dataset, // 數據集   
     69                     true// 是否顯示圖例   
     70                     true// 是否顯示工具提示   
     71                     true // 是否生成URL   
     72                     );   
     73         }   
     74         else{ chart = ChartFactory.createPieChart(   
     75                 title, // 圖表標題   
     76                 dataset, // 數據集   
     77                 true// 是否顯示圖例   
     78                 true// 是否顯示工具提示   
     79                 true // 是否生成URL   
     80                 );   
     81         }   
     82         // 設置標題字體,為了防止中文亂碼:必須設置字體   
     83         chart.setTitle(new TextTitle(title, new Font("黑體", Font.ITALIC, 22)));   
     84         // 設置圖例的字體,為了防止中文亂碼:必須設置字體   
     85         chart.getLegend().setItemFont(new Font("黑體", Font.BOLD, 12));   
     86         // 獲取餅圖的Plot對象(實際圖表)   
     87         PiePlot plot = (PiePlot) chart.getPlot();   
     88         // 圖形邊框顏色   
     89         plot.setBaseSectionOutlinePaint(Color.GRAY);   
     90         // 圖形邊框粗細   
     91         plot.setBaseSectionOutlineStroke(new BasicStroke(0.0f));   
     92         // 設置餅狀圖的繪制方向,可以按順時針方向繪制,也可以按逆時針方向繪制   
     93         plot.setDirection(Rotation.ANTICLOCKWISE);   
     94         // 設置繪制角度(圖形旋轉角度)   
     95         plot.setStartAngle(70);   
     96         // 設置突出顯示的數據塊   
     97         // plot.setExplodePercent("One", 0.1D);   
     98         // 設置背景色透明度   
     99         plot.setBackgroundAlpha(0.7F);   
    100         // 設置前景色透明度   
    101         plot.setForegroundAlpha(0.65F);   
    102         // 設置區塊標簽的字體==為了防止中文亂碼:必須設置字體   
    103         plot.setLabelFont(new Font("宋體", Font.PLAIN, 12));   
    104         // 扇區分離顯示,對3D圖不起效   
    105         if(is3D)   
    106             plot.setExplodePercent(dataset.getKey(3), 0.1D);   
    107         // 圖例顯示百分比:自定義方式,{0} 表示選項, {1} 表示數值, {2} 表示所占比例 ,小數點后兩位   
    108         plot.setLabelGenerator(new StandardPieSectionLabelGenerator(   
    109                 "{0}:{1}\r\n({2})", NumberFormat.getNumberInstance(),   
    110                 new DecimalFormat("0.00%")));   
    111         // 指定顯示的餅圖為:圓形(true) 還是橢圓形(false)   
    112         plot.setCircular(true);   
    113         // 沒有數據的時候顯示的內容   
    114         plot.setNoDataMessage("找不到可用數據");   
    115   
    116         // 設置鼠標懸停提示   
    117         plot.setToolTipGenerator(new StandardPieToolTipGenerator());   
    118         // 設置熱點鏈接   
    119         // plot.setURLGenerator(new StandardPieURLGenerator("detail.jsp"));   
    120   
    121         return chart;   
    122     }   
    123     /**  
    124      *<br> 方法名稱:createPieChart
    125      *<br> 功能描述:創建BarChart(柱狀圖/條形圖)圖表  
    126      *<br> 返 回 值:JFreeChart
    127      *<br> 創 建 人:
    128      *<br> 創建日期:Mar 30, 2010 12:59:07 PM
    129      *@param dataset
    130      */ 
    131     @SuppressWarnings("deprecation")
    132     public static JFreeChart createBarChart(CategoryDataset dataset,   
    133             String title, String x, String y,boolean is3D) {   
    134         JFreeChart chart =null;  
    135         BarRenderer renderer = null;
    136         if(is3D){   
    137             chart = ChartFactory.createBarChart3D( // 3D柱狀圖   
    138                     // JFreeChart chart = ChartFactory.createLineChart3D( //3D折線圖   
    139                     title, // 圖表的標題   
    140                     x, // 目錄軸的顯示標簽   
    141                     y, // 數值軸的顯示標簽   
    142                     dataset, // 數據集   
    143                     PlotOrientation.VERTICAL, // 圖表方式:V垂直;H水平   
    144                     true// 是否顯示圖例   
    145                     false// 是否顯示工具提示   
    146                     false // 是否生成URL   
    147                     );   
    148             // 柱圖的呈現器
    149             renderer = new BarRenderer3D();
    150             renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());     
    151             renderer.setItemLabelFont(new   Font("黑體",Font.PLAIN,12));     
    152             renderer.setItemLabelsVisible(true);
    153             //3D柱子上不能正常顯示數字
    154             //注意:如果數值太大切前面的柱子低于后面的柱子,那么前面的那個數值將被擋住,所以將下面方法中的0該為-值
    155             ItemLabelPosition itemLabelPositionFallback = new ItemLabelPosition(
    156                     ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_LEFT,
    157                     TextAnchor.HALF_ASCENT_LEFT,-1.3D);
    158             //設置不能正常顯示的柱子label的position
    159             renderer.setPositiveItemLabelPositionFallback(itemLabelPositionFallback);
    160             renderer.setNegativeItemLabelPositionFallback(itemLabelPositionFallback);
    161         }else{   
    162             chart = ChartFactory.createBarChart( // 柱狀圖   
    163                     // JFreeChart chart = ChartFactory.createLineChart3D( //3D折線圖   
    164                     title, // 圖表的標題   
    165                     x, // 目錄軸的顯示標簽   
    166                     y, // 數值軸的顯示標簽   
    167                     dataset, // 數據集   
    168                     PlotOrientation.VERTICAL, // 圖表方式:V垂直;H水平   
    169                     true// 是否顯示圖例   
    170                     false// 是否顯示工具提示   
    171                     false // 是否生成URL   
    172                     );  
    173             // 柱圖的呈現器
    174             renderer = new BarRenderer();
    175             renderer.setIncludeBaseInRange(true);        // 顯示每個柱的數值,并修改該數值的字體屬性   
    176             renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());   
    177             renderer.setBaseItemLabelsVisible(true);
    178         }   
    179            
    180         //設置圖片背景
    181 //        chart.setBackgroundPaint(Color.PINK);
    182         // 為了防止中文亂碼:必須設置字體   
    183         chart.setTitle(new TextTitle(title, new Font("黑體", Font.PLAIN, 22)));   
    184         LegendTitle legend = chart.getLegend(); // 獲取圖例   
    185         legend.setItemFont(new Font("宋體", Font.BOLD, 12)); // 設置圖例的字體,防止中文亂碼   
    186         CategoryPlot plot = (CategoryPlot) chart.getPlot(); // 獲取柱圖的Plot對象(實際圖表)   
    187         // 設置柱圖背景色(注意,系統取色的時候要使用16位的模式來查看顏色編碼,這樣比較準確)   
    188         plot.setBackgroundPaint(new Color(255255204));   
    189         plot.setForegroundAlpha(0.65F); // 設置前景色透明度   
    190         // 設置橫虛線可見   
    191         plot.setRangeGridlinesVisible(true);   
    192         // 虛線色彩   
    193         plot.setRangeGridlinePaint(Color.gray);  
    194   
    195         ValueAxis rangeAxis = plot.getRangeAxis();
    196         //設置最高的一個Item與圖片頂端的距離
    197         rangeAxis.setUpperMargin(0.2);
    198         //設置最低的一個Item與圖片底端的距離
    199         rangeAxis.setLowerMargin(0.3);
    200         
    201         CategoryAxis domainAxis = plot.getDomainAxis(); // 獲取x軸   
    202         domainAxis.setMaximumCategoryLabelWidthRatio(1.0f);// 橫軸上的 Lable 是否完整顯示   
    203         domainAxis.setLabelFont(new Font("宋體", Font.TRUETYPE_FONT, 14));// 設置字體,防止中文亂碼   
    204         domainAxis.setTickLabelFont(new Font("宋體", Font.BOLD, 12));// 軸數值  
    205         // h.setCategoryLabelPositions(CategoryLabelPositions.UP_45);//45度傾斜   
    206         plot.getRangeAxis().setLabelFont(new Font("宋體", Font.TRUETYPE_FONT, 14)); // Y軸設置字體,防止中文亂碼   
    207           
    208         renderer.setBaseOutlinePaint(Color.BLACK);   // 設置柱子邊框顏色 
    209         renderer.setDrawBarOutline(true);               // 設置柱子邊框可見 
    210         renderer.setSeriesPaint(0, Color.YELLOW);    // 設置每個柱的顏色
    211         renderer.setSeriesPaint(1, Color.green);
    212         renderer.setSeriesPaint(2, Color.RED);
    213         renderer.setSeriesPaint(3, Color.CYAN);
    214         renderer.setSeriesPaint(5, Color.ORANGE);
    215         renderer.setSeriesPaint(4, Color.MAGENTA);
    216         renderer.setSeriesPaint(6, Color.DARK_GRAY);
    217         renderer.setSeriesPaint(7, Color.PINK);
    218         renderer.setSeriesPaint(8, Color.black);
    219         renderer.setItemMargin(0.1);                   // 設置每個地區所包含的平行柱的之間距離
    220         plot.setRenderer(renderer);                  // 給柱圖添加呈現器   
    221         plot.setForegroundAlpha(0.7f);               // 設置柱的透明度
    222 //        renderer.setMaximumBarWidth(0.2);            // 設置柱子寬度   
    223 //        renderer.setMinimumBarLength(0.6);           // 設置柱子高度 
    224         //設置橫坐標顯示位置(默認是下方);
    225 //        plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
    226         //設置縱坐標顯示位置(默認是左方)
    227 //        plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
    228         // 沒有數據的時候顯示的內容   
    229         plot.setNoDataMessage("找不到可用數據");   
    230   
    231         return chart;   
    232     }   
    233   
    234     /**  
    235      *<br> 方法名稱:JFreeChartSeriesChart
    236      *<br> 功能描述:創建曲線圖(折線圖) 
    237      *<br> 注意事項:一般曲線圖不用加域所以后4個參數一般為(false,null,0,0)
    238      *<br> 參 數:title-標題;subtitleStr-子標題;domain-x軸標志;range-y軸標志;dataset-設置數據;isAreaText-是否在圖標中加域;
    239      *<br> areaText-域中文字,lowpress-域的最低刻度;uperpress-域的最高刻度
    240      *<br> 返 回 值:JFreeChart
    241      *<br> 創 建 人:
    242      *<br> 創建日期:Mar 30, 2010 1:11:24 PM
    243      */   
    244     @SuppressWarnings("deprecation")
    245     public static JFreeChart JFreeChartSeriesChart(String title,
    246             String subtitleStr, String domain, String range,
    247             TimeSeriesCollection dataset,boolean isAreaText,String areaText,double lowpress,double uperpress) { //時間曲線元素
    248         // JFreeChart chart = ChartFactory.createTimeSeriesChart("標題","x軸標志","y軸標志","設置數據",是否顯示圖形,是否進行提示,是否配置報表存放地址);
    249         JFreeChart chart = ChartFactory.createTimeSeriesChart(title, domain,range, dataset, truetruefalse);
    250          
    251         if(subtitleStr!=null){
    252             TextTitle subtitle = new TextTitle(subtitleStr, new Font("黑體",Font.BOLD, 12));
    253             chart.addSubtitle(subtitle);
    254         }
    255         // 設置日期顯示格式
    256         XYPlot plot = chart.getXYPlot();
    257         DateAxis axis = (DateAxis) plot.getDomainAxis();
    258         axis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM-dd")); 
    259         // 設置標題的顏色  
    260         chart.setTitle(new TextTitle(title, new Font("黑體", Font.ITALIC, 22)));
    261         chart.setBackgroundPaint(new GradientPaint(00, Color.white, 01000, Color.blue));
    262         plot.setOutlineStroke(new BasicStroke(1.5f)); // 邊框粗細
    263         ValueAxis vaxis = plot.getDomainAxis();
    264         vaxis.setAxisLineStroke(new BasicStroke(1.5f)); // 坐標軸粗細
    265         vaxis.setAxisLinePaint(new Color(215215215)); // 坐標軸顏色
    266         vaxis.setLabelPaint(new Color(101010)); // 坐標軸標題顏色
    267         vaxis.setTickLabelPaint(new Color(102102102)); // 坐標軸標尺值顏色
    268         vaxis.setLowerMargin(0.06d);// 分類軸下(左)邊距
    269         vaxis.setUpperMargin(0.14d);// 分類軸下(右)邊距,防止最后邊的一個數據靠近了坐標軸。
    270         plot.setNoDataMessage("找不到可用數據");//沒有數據時顯示的文字說明。
    271         XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();
    272         //第一條折線的顏色  
    273         xylineandshaperenderer.setBaseItemLabelsVisible(true);  
    274         xylineandshaperenderer.setSeriesFillPaint(0new Color(1271280));  
    275         xylineandshaperenderer.setSeriesPaint(0new Color(1271280));  
    276         xylineandshaperenderer.setSeriesShapesVisible(0true);  
    277         xylineandshaperenderer.setSeriesShapesVisible(1true);
    278         xylineandshaperenderer.setSeriesShapesVisible(2true);
    279         xylineandshaperenderer.setSeriesShapesVisible(3true);
    280         xylineandshaperenderer.setSeriesShapesVisible(4true);
    281         //折線的粗細調  
    282         StandardXYToolTipGenerator xytool = new StandardXYToolTipGenerator();  
    283         xylineandshaperenderer.setToolTipGenerator(xytool);  
    284         xylineandshaperenderer.setStroke(new BasicStroke(1.5f)); 
    285         // 顯示節點的值  
    286         xylineandshaperenderer.setBaseItemLabelsVisible(true);  
    287         xylineandshaperenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(  
    288         ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));  
    289         xylineandshaperenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());  
    290         xylineandshaperenderer.setBaseItemLabelPaint(new Color(102102102));// 顯示折點數值字體的顏色  
    291         
    292         ValueAxis rangeAxis = plot.getRangeAxis();
    293         //設置最高的一個Item與圖片頂端的距離
    294         rangeAxis.setUpperMargin(0.2);
    295         //設置最低的一個Item與圖片底端的距離
    296         rangeAxis.setLowerMargin(0.3);
    297         //在圖表中加區域加區域
    298         if(isAreaText){
    299             lowpress = 62;  
    300             uperpress = 400;  
    301             IntervalMarker intermarker = new IntervalMarker(lowpress, uperpress);  
    302             intermarker.setPaint(Color.decode("#66FFCC"));// 域顏色  
    303             intermarker.setLabelFont(new Font("SansSerif"4114));  
    304             intermarker.setLabelPaint(Color.RED); 
    305             intermarker.setLabel(areaText); 
    306             if (dataset != null) {  
    307                 plot.addRangeMarker(intermarker, Layer.BACKGROUND);  
    308             }  
    309         }
    310         return chart;
    311     }
    312 
    313 
    314     /**  
    315      *<br> 方法名稱:getGraphURL
    316      *<br> 功能描述:取得session中圖像的地址;
    317      *<br> 返 回 值:String
    318      *<br> 創 建 人:
    319      *<br> 創建日期:Mar 30, 2010 1:09:51 PM
    320      */   
    321     public static String getGraphURL(JFreeChart chart, HttpSession session,
    322             HttpServletRequest request, int width, int height)throws IOException {
    323         String filename = ServletUtilities.saveChartAsPNG(chart, width, height,null, session);
    324         String graphURL = request.getContextPath()+ "/servlet/DisplayChart?filename=" + filename;
    325         return graphURL;
    326     }
    327     
    328 }  
    329 
    330 

    2、模擬數據
     1 //柱狀圖
     2         DefaultCategoryDataset dataset = new DefaultCategoryDataset();
     3         dataset.setValue(5003"北京""Corejava");
     4         dataset.setValue(3333"上海""Corejava");
     5         dataset.setValue(5343"廣州""Corejava");
     6         dataset.setValue(2000"貴州""Corejava");
     7 
     8         dataset.setValue(1000"北京""JavaWeb");
     9         dataset.setValue(6300"上海""JavaWeb");
    10         dataset.setValue(4000"廣州""JavaWeb");
    11 
    12         dataset.setValue(2000"北京""jquery");
    13         dataset.setValue(1000"上海""jquery");
    14         dataset.setValue(1000"廣州""jquery");
    15         JFreeChart jfreechart = JFreeChartCreater.createBarChart(dataset, "課件使用情況條形圖""課件制作者""可見使用次數"true);
    16         
    17         //折線圖
    18         // 創建第一條時序線
    19           TimeSeries pop1 = new TimeSeries("流行趨勢1", Day.class);
    20           pop1.add(new Day(1012004), 100);
    21           pop1.add(new Day(1022004), 150);
    22           pop1.add(new Day(1032004), 250);
    23           pop1.add(new Day(1042004), 275);
    24           pop1.add(new Day(1052004), 325);
    25           pop1.add(new Day(1062004), 425);
    26           // 創建第二條時序線
    27           TimeSeries pop2 = new TimeSeries("流行趨勢2", Day.class);
    28           pop2.add(new Day(2012004), 200);
    29           pop2.add(new Day(2022004), 250);
    30           pop2.add(new Day(2032004), 450);
    31           pop2.add(new Day(2042004), 475);
    32           pop2.add(new Day(2052004), 125);
    33           pop2.add(new Day(2062004), 150);
    34           JFreeChart jfreechart = JFreeChartCreater.JFreeChartSeriesChart("課件使用情況條形圖"null"X軸""Y軸", dataset,false,null,0,0);
    35         
    36         //餅圖
    37         DefaultPieDataset dataset = new DefaultPieDataset();
    38         
    39         dataset.setValue("java程序設計語言"10000);
    40         dataset.setValue("JSP基礎與案例開發詳解"20000);
    41         dataset.setValue("struts基礎與案例開發詳解"30000);
    42         dataset.setValue("精通JSF"4000);
    43         JFreeChart jfreechart = JFreeChartCreater.createPieChart(dataset,
    44                 "課件使用情況條形圖"false);
    45 
    46         request.setAttribute("jfreechart", jfreechart);

    3、jsp頁面
     1 <%@ page language="java" pageEncoding="utf-8"%>
     2 <%@ include file="/includes/taglibs.jsp"%>
     3 <jsp:directive.page import="org.jfree.chart.*"/>
     4 <jsp:directive.page import="org.jfree.chart.entity.*"/>
     5 <jsp:directive.page import="org.jfree.chart.servlet.ServletUtilities"/>
     6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     7 <html xmlns="http://www.w3.org/1999/xhtml">
     8 <head>
     9     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    10     <title>課件使用情況柱狀圖</title>
    11 </head>
    12 <body>
    13         <%
    14             JFreeChart jfreechart = (JFreeChart) request.getAttribute("jfreechart");
    15             StandardEntityCollection sec = new StandardEntityCollection();
    16             ChartRenderingInfo info = new ChartRenderingInfo(sec);
    17             String filename = ServletUtilities.saveChartAsJPEG(jfreechart, 500,300, info, session);
    18             String graphURL = request.getContextPath()+ "/servlet/DisplayChart?filename=" + filename;
    19         %>
    20 
    21         <ALIGN="CENTER"> 
    22         <img src="<%=graphURL%>" width=500 height=300 border=0 usemap="#map0"> 
    23     </P>     
    24     <ALIGN="CENTER">
    25         <input type="button" value="關閉" onclick="JavaScript:window.close()"/>
    26     </p>
    27 </body>
    28 </html>
    29 

    posted on 2010-03-31 11:31 生命的綻放 閱讀(2746) 評論(0)  編輯  收藏 所屬分類: JAVA

    <2010年3月>
    28123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導航

    統計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲一区精彩视频| 特级毛片aaaa免费观看 | 亚洲日韩精品无码专区加勒比| g0g0人体全免费高清大胆视频| 免费无码黄网站在线观看| 亚洲av无码一区二区三区乱子伦| 亚洲6080yy久久无码产自国产 | 99久久久国产精品免费蜜臀| 亚洲成a人片在线观看日本麻豆 | 一级毛片免费一级直接观看| 亚洲国产成人爱av在线播放| 久久99精品视免费看| 亚洲av无码国产精品夜色午夜| 无码少妇一区二区浪潮免费| 精品亚洲成AV人在线观看| 一个人免费视频观看在线www| 久久久免费精品re6| 亚洲av日韩专区在线观看| 亚洲不卡av不卡一区二区| 午夜免费啪视频在线观看| 亚洲av日韩精品久久久久久a| 亚洲色图黄色小说| 无人影院手机版在线观看免费| 国产精品无码免费专区午夜| 亚洲精品中文字幕无乱码麻豆| 亚洲人成网亚洲欧洲无码久久| 国产无遮挡又黄又爽免费网站| 久久亚洲精品无码播放| 男女一边摸一边做爽的免费视频| 久久青草亚洲AV无码麻豆| 日产国产精品亚洲系列| www一区二区www免费| 亚洲综合一区国产精品| 亚洲Av无码乱码在线播放| 成年美女黄网站色大免费视频| 亚洲欧美成人一区二区三区| 久久久久亚洲Av无码专| 国产亚洲精品国产| 青草草色A免费观看在线| 国产精品亚洲天堂| 亚洲最大av无码网址|