亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch5.htm

?? JAVA Developing Professional JavaApplets
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
at any of the cells in the spreadsheet that didn't fit onscreen.This severely reduced the applet's usefulness, but this problemcan be fixed by adding scrollbars. With horizontal and verticalscrollbars, you can scroll to the cell you want to view; therefore,the spreadsheet's full contents can be used.<H3><A NAME="AddingtheScrollbarClass">Adding the Scrollbar Class</A></H3><P>The AWT Scrollbar class is used to create vertical or horizontalscrollbars. A box at the center of the scrollbar represents thescrollbar's current position; this box has been called the <I>thumbtack</I>,the <I>thumb</I>, or <I>elevator</I>, but in this discussion &quot;thumbtack&quot;will be used. The thumbtack can be moved in line increments (whenthe scrollbar arrows are pressed) or in page increments (whenthe scrollbar area between the arrows is clicked). The thumbtackcan also be dragged to a specific position.<P>A Scrollbar object can be created through a variety of constructors.The most useful constructor is one that takes five integer parameters.A good way to illustrate this constructor is to look at how thevertical and horizontal scrollbars are declared and created inthe SpreadsheetFrame:<BLOCKQUOTE><TT>Scrollbar vScroll; // The vertical scrollbar<BR>Scrollbar hScroll;&nbsp;&nbsp;// The horizontal scrollbar<BR>vScroll = new Scrollbar(Scrollbar.VERTICAL,1,1,1,numRows);<BR>hScroll = new Scrollbar(Scrollbar.HORIZONTAL,1,1,1,numCols);</TT></BLOCKQUOTE><P>The first parameter refers to the scrollbar's orientation, whichcan be defined by using either the <TT>Scrollbar.HORIZONTAL</TT>or <TT>Scrollbar.VERTICAL</TT> constant.The former is a scrollbar set horizontally across the native container;the latter is displayed up the side. Figure 5.1 shows what thespreadsheet applet looks like after the scrollbars are added.The orientation of the scrollbar can be retrieved through the<TT>getOrientation()</TT> method.<P><A HREF="f5-1.gif" ><B>Figure 5.1 </B>:<I> The spreadsheet applet with scrollbars.</I></A><P>The next parameter specifies the initial value of the scrollbar.This must be between the minimum and maximum scrollbar values,specified in the last two parameters, respectively. In the caseof the spreadsheet applet, the maximum value is the number ofrows or columns supported by the spreadsheet. These are set at<TT>26</TT> and <TT>40</TT>in the SpreadsheetApplet class. The scrollbar's initial valueof <TT>1</TT> indicates that the displaybegins at the top row and leftmost column of the spreadsheet.<P>The fourth parameter indicates the range of values that shouldbe traversed when you click on the paging portion of the scrollbar.This corresponds to the visible portion of the scrollbar area.For example, if 10 rows are currently displayed on the screen,then the range is <TT>10</TT>. Thisrange is also known as the <I>page increment</I> and can be setby the <TT>setPageIncrement()</TT>method. Since it is usually possible to resize a window that hasscrollbars, you will need to modify the page increment on-the-fly.This can involve somewhat lengthy code, so it isn't used in thespreadsheet applet. There also seems to be a problem with the<TT>setPageIncrement()</TT> methodin the version of AWT available at this time. Consequently, onlythe line increment and thumbtack drag aspects of scrollbars areset up for the spreadsheet applet.<P>Recall that the SpreadsheetFrame class uses GridBagLayout as itslayout mechanism. How the scrollbars are added to the frame displayprovides another interesting example of using the complex GridBagLayoutclass. See this book's CD-ROM to find out how the scrollbars areadded to the frame's GridBagLayout instance; this is defined inthe file SpreadsheetApplet.java.<H3><A NAME="HandlingScrollbarEvents">Handling Scrollbar Events</A></H3><P>The next step in creating and using scrollbars is to catch eventsinitiated by scrollbar actions. Five constants in the Event classare allocated for handling scrollbar events. These are listedin Table 5.2. The following code shows how the SpreadsheetFrameclass traps these events:<BLOCKQUOTE><TT>public boolean handleEvent(Event evt){<BR>&nbsp;switch(evt.id) {<BR>case Event.SCROLL_LINE_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Event.SCROLL_ABSOLUTE:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Event.SCROLL_LINE_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Event.SCROLL_PAGE_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case Event.SCROLL_PAGE_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(evt.target instanceof Scrollbar) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollbarAction((Scrollbar)evt.target);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;//end if<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returntrue;<BR></TT></BLOCKQUOTE><P><CENTER><B>Table 5.2. Scrollbar events.</B></CENTER><P><CENTER><TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%><TR VALIGN=TOP><TD WIDTH=233><I>Event</I></TD><TD WIDTH=194><I>Description</I></TD></TR><TR VALIGN=TOP><TD WIDTH=233><TT>EVENT.SCROLL_LINE_UP</TT></TD><TD WIDTH=194>User hit the line-up arrow.</TD></TR><TR VALIGN=TOP><TD WIDTH=233><TT>EVENT.SCROLL_LINE_DOWN</TT></TD><TD WIDTH=194>User hit the line-down arrow.</TD></TR><TR VALIGN=TOP><TD WIDTH=233><TT>EVENT.SCROLL_PAGE_UP</TT></TD><TD WIDTH=194>User hit the page-up arrow.</TD></TR><TR VALIGN=TOP><TD WIDTH=233><TT>EVENT.SCROLL_PAGE_DOWN</TT></TD><TD WIDTH=194>User hit the page-down arrow.</TD></TR><TR VALIGN=TOP><TD WIDTH=233><TT>EVENT.SCROLL_ABSOLUTE</TT></TD><TD WIDTH=194>User moved the thumbtack.</TD></TR></TABLE></CENTER><P><P>The event-handling code calls the <TT>scrollbarAction()</TT>method, which goes as follows:<BLOCKQUOTE><TT>// Handle scroll bar actions...<BR>&nbsp;&nbsp;&nbsp;void scrollbarAction(Scrollbar sb) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (sb.getOrientation() ==Scrollbar.VERTICAL)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.setNewTop(sb.getValue());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.setNewLeft(sb.getValue());<BR>&nbsp;&nbsp;&nbsp;}</TT></BLOCKQUOTE><P>It checks to see whether a horizontal or vertical scrollbar hasbeen selected by using the <TT>getOrientation()</TT>method of the target and comparing it to the Scrollbar constantvalue. The code then gets the current location of the thumbtackwith the <TT>getValue()</TT> method.This returns a value between the minimum and maximum. If it isthe minimum value, then the thumbtack is at the top or leftmostposition of the scrollbar. The maximum value represents the bottomor rightmost position. This value is set to the appropriate methodof the SpreadsheetContainer class.<P>This class is modified to support scrollbars by introducing twovariables that indicate the top row and leftmost column to bedisplayed. When the scrollbar scrolls upward or downward, thedisplay's top row is adjusted in the corresponding direction.Likewise, moving the scrollbar left or right adjusts the columnof the spreadsheet drawn on the display's leftmost portion. Theintroduction of the <TT>topCell</TT>and <TT>leftCell</TT> integer variablesare used to track where the row and column display begins.<P>Listing 5.1 provides the two SpreadsheetContainer methods calledby the <TT>scrollbarAction()</TT>method shown above. These set the top row or leftmost column tobe displayed. The SpreadsheetContainer then repaints itself, displayingthe new selections. The following code shows how this displayworks.<HR><BLOCKQUOTE><B>Listing 5.1. Setting the top row and leftmost column of theSpreadsheetContainer object.<BR></B></BLOCKQUOTE><BLOCKQUOTE><TT>// Handle scrolling by setting new top...<BR>&nbsp;&nbsp;&nbsp;public void setNewTop(int newTop) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Set top, taking into accountheadings and constraints...<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (newTop &lt; numRows)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topCell= newTop;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topCell= numRows - 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resetMarking();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repaint();<BR>&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;// Set new leftmost column...<BR>&nbsp;&nbsp;&nbsp;public void&nbsp;&nbsp;setNewLeft(int newLeft){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Set new left, taking intoaccount headings and constraints...<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (newLeft &lt; numColumns)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leftCell= newLeft;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leftCell= numColumns - 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resetMarking();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repaint();<BR>&nbsp;&nbsp;&nbsp;}</TT></BLOCKQUOTE><HR><H3><A NAME="InsidetheSpreadsheetContainerPaintMe">Inside theSpreadsheetContainer Paint Methods</A></H3><P>Listing 5.2 shows the code involved in painting the SpreadsheetContainer.These routines paint the row and column headers on the sides,then fill up the interior with the evaluated values of the SpreadsheetCellobjects that fit in the painted region. This painting has as itsorigin the <TT>topCell</TT> variableas the top row to display and the <TT>leftCell</TT>variable as the first column of SpreadsheetCell objects to bedisplayed.<HR><BLOCKQUOTE><B>Listing 5.2. SpreadsheetContainer paint methods.<BR></B></BLOCKQUOTE><BLOCKQUOTE><TT>// Update message sent when repaintingis needed...<BR>&nbsp;&nbsp;&nbsp;// Prevent paint from getting cleared out...<BR>&nbsp;&nbsp;&nbsp;public void update(Graphics g) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paint(g);<BR>&nbsp;&nbsp;&nbsp;}<BR><BR>// Draw the displayable spreadsheet contents...<BR>public synchronized void paint (Graphics g) {<BR> // Go through the calculations of the paint while painting...<BR> calculatePaint(g,true,0,0);<BR>}<BR><BR>// This goes through the motions of calculating what is on the<BR>// screen and either calculates coordinates or paints...<BR>// If it is not paint, returns cell that fits in hit region...<BR>SpreadsheetCell calculatePaint(Graphics g,boolean bPaint,int xHit,intyHit) {<BR> // Get the current size of the display area...<BR> Dimension dm = size();<BR> Rectangle r = null;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;The clippingrectangle...<BR> Rectangle cellRect = null; // The cell clipping rectangle...<BR> // Calculate the cell width and height<BR> // Cell should be wide enough to show 8 digits...<BR> if (bPaint == true) {<BR>&nbsp;&nbsp;cellWidth = g.getFontMetrics().stringWidth(&quot;12345.67&quot;);<BR>&nbsp;&nbsp;cellHeight = g.getFontMetrics().getHeight();<BR>&nbsp;&nbsp;r = g.getClipRect();<BR> } // end if<BR> // Figure out how many rows and cols can be displayed<BR> int nCol = Math.min(numColumns,dm.width / cellWidth);<BR> int nRow = Math.min((numRows + 1),dm.height / cellHeight);<BR><BR> // Draw the cells...<BR> int index,i,x,j,y,currentRow,currentCol;<BR> -nRow;<BR> // Go across the rows...<BR> // Show the headers and adjust for top and left cell...<BR> for (currentRow = i = 0; i &lt; nRow; ++i) {<BR>&nbsp;&nbsp;y = cellHeight + (i * cellHeight);<BR>&nbsp;&nbsp;// Go across the columns...<BR>&nbsp;&nbsp;for (currentCol = j = 0; j &lt; nCol; ++j) {<BR>&nbsp;&nbsp;&nbsp;index = (currentRow * numColumns) + currentCol;<BR>&nbsp;&nbsp;&nbsp;x = (j * cellWidth);<BR>&nbsp;&nbsp;&nbsp;// Paint if told to...<BR>&nbsp;&nbsp;&nbsp;if (bPaint == true) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// See if it is in the intersection of the<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// clipping rectangle<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellRect = new Rectangle(x,y,cellWidth,cellHeight);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (r.intersects(cellRect)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Paint if you are at a valid row...<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((currentRow &lt; numRows) &amp;&amp; (currentCol &lt; numColumns)){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matrix[index].paint(g,x,y,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cellWidth,cellHeight);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} // end inner if<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {&nbsp;&nbsp;// Otherwise, fill it in with grey...<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emptyCell.paint(g,x,y,cellWidth,cellHeight);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} // end else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} // end if<BR>&nbsp;&nbsp;} // end if<BR>&nbsp;&nbsp;else { // Otherwise, see if cell fits for highlightcalculations&#133;<BR>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久综合中文综合网| 欧美日韩不卡视频| 日韩精品亚洲一区二区三区免费| 日韩毛片在线免费观看| 国产精品视频一二三| 国产精品电影一区二区三区| 中文字幕亚洲一区二区av在线| 国产精品素人一区二区| 日韩美女啊v在线免费观看| 综合激情网...| 亚洲一区二区三区四区在线观看| 亚洲一区二区中文在线| 青娱乐精品在线视频| 成人福利视频在线看| 成人a级免费电影| 一本在线高清不卡dvd| 欧美日韩中文字幕精品| 欧美一区二区久久久| 久久久国产午夜精品| 亚洲天堂福利av| 天天综合色天天综合| 国产精品一区二区在线看| 成人免费视频播放| 7777精品伊人久久久大香线蕉经典版下载 | 精品国产乱码久久久久久蜜臀 | 欧美一区二区三区人| 日韩欧美卡一卡二| 亚洲人精品午夜| 蜜桃视频第一区免费观看| 懂色av噜噜一区二区三区av| 欧洲av在线精品| 国产精品高潮呻吟| 奇米精品一区二区三区在线观看 | 欧美日韩dvd在线观看| 欧美韩国日本不卡| 蜜臀av性久久久久蜜臀av麻豆| 国产精品911| 欧美成人性福生活免费看| 一区二区三区四区在线播放| 国产精品99久久久久久有的能看| 欧美在线观看禁18| 亚洲视频狠狠干| caoporn国产一区二区| 国产欧美日本一区视频| 日韩中文字幕不卡| 欧美日韩综合色| 亚洲自拍偷拍九九九| 欧美主播一区二区三区| 中文字幕一区二区三| 懂色av一区二区三区免费看| 国产亚洲综合在线| 国产一区二区不卡在线| 亚洲精品一区二区三区香蕉| 日本中文字幕一区二区有限公司| 欧美视频在线播放| 亚洲电影一区二区| 欧美日韩不卡视频| 日本午夜精品视频在线观看| 欧美久久一区二区| 亚洲成a人片在线不卡一二三区 | 亚洲精品国久久99热| 精品亚洲porn| 欧美精品日韩一本| 国模娜娜一区二区三区| 欧美午夜免费电影| 亚洲国产视频直播| 欧美人动与zoxxxx乱| 亚洲精品中文字幕乱码三区| 一级日本不卡的影视| a美女胸又www黄视频久久| 国产午夜久久久久| 国产成人av在线影院| 亚洲九九爱视频| 97久久超碰国产精品电影| 亚洲成人av一区二区| 91精品国产综合久久久久久久 | a4yy欧美一区二区三区| 久久亚洲精品小早川怜子| 狠狠色综合播放一区二区| 日韩欧美国产1| 亚洲超丰满肉感bbw| 欧美精品第一页| 91在线免费看| 看片网站欧美日韩| 香蕉加勒比综合久久| 欧美群妇大交群中文字幕| 日本va欧美va精品| 亚洲精品水蜜桃| 久久久久亚洲综合| 在线免费观看视频一区| 日本伊人精品一区二区三区观看方式| 久久久久国产精品麻豆| 欧美放荡的少妇| 色天使色偷偷av一区二区| 国产精品自产自拍| 美国十次了思思久久精品导航| 亚洲精品伦理在线| 欧美一区二区福利在线| 欧美日韩一区二区三区四区五区 | 日韩女优毛片在线| 欧美色精品在线视频| 91蜜桃在线免费视频| 奇米精品一区二区三区四区| 又紧又大又爽精品一区二区| 日本一区二区三区电影| 久久综合色鬼综合色| 精品福利在线导航| 精品成人一区二区| 欧美人xxxx| 99精品国产一区二区三区不卡 | 99久久99久久精品国产片果冻| 国产一区999| 国产成人综合在线| 成人短视频下载| 欧美在线观看禁18| 26uuu久久综合| 亚洲激情六月丁香| 久久精品99国产国产精| 国产传媒久久文化传媒| 欧美视频在线观看一区二区| 日韩一区二区不卡| 亚洲天堂精品在线观看| 美腿丝袜在线亚洲一区| 99久久综合99久久综合网站| 欧美四级电影网| 国产婷婷色一区二区三区在线| 亚洲一区在线免费观看| 国产精品一卡二卡在线观看| 欧美日韩在线电影| 国产精品乱子久久久久| 久久成人麻豆午夜电影| 毛片av一区二区三区| 99久久精品一区二区| 久久综合一区二区| 日韩电影免费在线| 色噜噜狠狠成人网p站| 久久久精品黄色| 美女视频一区在线观看| 欧美日韩中文字幕精品| 亚洲色欲色欲www| 丁香婷婷综合网| 久久亚洲私人国产精品va媚药| 天使萌一区二区三区免费观看| 欧美丰满美乳xxx高潮www| 亚洲三级久久久| 91色在线porny| 国产精品不卡在线| 成人午夜在线视频| 国产网站一区二区三区| 国产乱码字幕精品高清av| 日韩欧美区一区二| 男男视频亚洲欧美| 欧美一区二区播放| 日本va欧美va欧美va精品| 欧美精品乱码久久久久久| 午夜精品一区二区三区电影天堂 | 日韩成人av影视| 日韩欧美国产小视频| 美女视频网站久久| 国产日韩欧美不卡在线| 国产盗摄精品一区二区三区在线| 国产亚洲精品免费| a在线播放不卡| 亚洲国产精品人人做人人爽| 欧美久久久久久久久| 美女免费视频一区二区| 亚洲国产电影在线观看| 色中色一区二区| 美国精品在线观看| 国产日产亚洲精品系列| 成人免费视频网站在线观看| 亚洲综合一区二区| 日韩欧美三级在线| av福利精品导航| 天天色天天操综合| 国产精品久久夜| 欧美精品精品一区| av在线不卡网| 美女精品自拍一二三四| 中文字幕一区二区在线观看| 欧美综合一区二区| 国产在线看一区| 亚洲综合色视频| 欧美激情自拍偷拍| 4438x亚洲最大成人网| aaa亚洲精品| 韩国三级在线一区| 亚洲第一狼人社区| 国产精品乱人伦中文| 精品欧美一区二区三区精品久久| 97精品国产97久久久久久久久久久久| 日本午夜精品视频在线观看| 亚洲精品水蜜桃| 最新国产成人在线观看| www国产精品av| 欧美不卡一区二区| 欧美一区二区三区免费在线看 | 蜜臀av性久久久久av蜜臀妖精| 中文字幕一区二区三区在线观看| 26uuu色噜噜精品一区二区|