久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java图形化界面编程之——AWT

發布時間:2023/12/29 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java图形化界面编程之——AWT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1、AWT簡介

2、AWT繼承體系

3、Container容器

3.1、Container繼承體系

3.2、常用API

3.2.1、Component的常用方法

3.2.2、Container的常用方法

3.3、容器演示

3.3.1、Window

3.3.2、Panel

3.3.3、ScrollPane

4、LayoutManager布局管理器

4.1、FlowLayout(流式布局)

4.2、BorderLayout(邊框布局)

4.3、GridLayout(網格布局)

4.4、GridBagLayout(網格包布局)

4.5、CardLayout(卡片布局)

4.6、BoxLayout(盒子布局)

4.6.1、Box容器

5、AWT中常用組件

5.1、基本組件

5.2、Dialog(對話框)

5.2.1、FileDialog(文件對話框)

6、事件處理

6.1、GUI事件處理機制

6.2、GUI中常見事件和事件監聽器

6.2.1、事件

6.2.2、事件監聽器

6.2.3、案例

7、菜單組件

8、繪圖

8.1、組件繪圖原理

8.2、Graphics對象的使用

8.3、處理位圖

8.4、ImageIO的使用


1、AWT簡介

AWT的全稱是抽象窗口工具集(Abstract Window Toolkit),它是sun公司最早提供的GUI庫,這個GUI類庫希望可以在所有平臺下都能運行,它為Java應用程序提供了基本的圖形組件,但這個GUI庫的功能比較有限,所以后來sun公司又提供了Swing庫。通過使用AWT和Swing提供的圖形化界面組件庫,java的圖形化界面編程非常簡單,程序只需要依次創建所需的圖形組件,并以合適的方式將這些組件組織在一起,就可以開發出非常美觀的用戶界面。

AWT是窗口框架,它從不同平臺的窗口系統中抽取出共同組件,當程序運行時,將這些組件的創建和動作委托給程序所在的運行平臺。簡而言之,當使用AWT編寫圖形界面應用時,程序僅制定了界面組件的位置和行為,并為提供真正的實現,JVM調用操作系統本地的圖形界面來創建和平臺一致的對等體。

使用AWT創建的圖形界面應用和所在的運行平臺有相同的界面風格,比如在Windows操作系統上,它就表現出Windows風格;在UNIX操作系統上,它就表現出UNIX風格。Sun希望采用這種方式來實現“Write Once,Run Anywhere”的目標。

2、AWT繼承體系

AWT繼承體系

所有和AWT編程相關的類都放在java.awt包以及它的子包中。AWT編程中有兩個基類:Component和MenuComponent:

  • Component:代表一個能以圖形化方式顯式出來,并可與用戶交互的對象。
  • MenuComponent:代表圖形界面的菜單組件,包括MenuBar(菜單條)、MenuItem(菜單項)等子類。

其中Container是一種特殊的Component,它代表一種容器,可以盛裝普通的Component。

AWT中還有一個非常重要的接口叫LayoutManager,如果一個容器中有多個組件,那么容器就需要使用LayoutManager來管理這些組件的布局方式。

接口LayoutManager:

  • GridLayout
  • FlowLayout
  • ...

3、Container容器

3.1、Container繼承體系

Container容器:

??????? 1、Window窗口容器:

??????????????? Frame:創建窗口

??????????????? Dialog:創建對話框

??????? 2、Panel內嵌容器:

??????????????? Applet

??????? 3、ScrollPane含有滾動條的容器

  • Window是可以獨立存在的頂級窗口,默認使用BorderLayout管理其內部組件布局;
  • Panel可以容納其他組件,但不能獨立存在,它必須內嵌其他容器中使用,默認使用FlowLayout管理其內部組件布局;
  • ScrollPane是一個帶滾動條的容器,它也不能獨立存在,默認使用BorderLayout管理其內部組件布局。

3.2、常用API

3.2.1、Component的常用方法

Component作為基類,提供了如下常用的方法來設置組件的大小、位置、可見性等。

方法簽名方法功能
setLocation(int x, int y)設置i組件的位置
setSize(int width, int height)設置組件的大小
setBounds(int x, int y, int width, int height)同時設置組件的位置、大小
setVisible(Boolean b)設置該組件的可見性

3.2.2、Container的常用方法

方法簽名方法功能
Component add(Component comp)向容器中添加其他組件(該組件既可以是普通組件,也可以是容器),并返回被添加的組件
Component getComponentAt(int x, int y)返回指定點的組件
int getComponentCount()返回該容器內組件的數量
Component[] getComponent()返回該容器內的所有組件

3.3、容器演示

3.3.1、Window

package Package1;import java.awt.*;public class FrameDemo {public static void main(String[] args) {//1、創建窗口對象Frame frame = new Frame("這是一個窗口容器Frame");//2、設置窗口的位置和大小frame.setLocation(100,100); //單位是像素frame.setSize(500,300); //單位是像素//3、設置窗口對象可見frame.setVisible(true);} }

3.3.2、Panel

package Package1;import java.awt.*;public class PanelDemo {public static void main(String[] args) {//1、創建一個Window對象,因為Panel以及其它的容器,都不能獨立存在,必須依附于Window存在Frame frame = new Frame("這是一個窗口容器Frame");//2、創建一個Panel對象Panel p = new Panel();//3、創建一個文本框和一個按鈕,并且把它們放入Panel容器中p.add(new TextField("這是一個測試文本"));p.add(new Button("這是一個測試按鈕"));//4、把Panel放入Window中frame.add(p);//5、設置Window的位置和大小frame.setBounds(400,200,500,300);//6、設置Window可見frame.setVisible(true);} }

按鈕文本顯示亂碼解決辦法:依次點擊Run -> Edit Configurations -> 左邊選中要修改的項 -> 在右側找到并點擊Modify options -> 點擊Add VM options -> 在新出現的框中輸入 -Dfile.encoding=gbk -> 點擊OK 。

3.3.3、ScrollPane

package Package1;import java.awt.*;public class ScrollPaneDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//創建一個ScrollPane對象ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);sp.add(new TextField("這是測試文本"));sp.add(new Button("這是測試按鈕"));//把ScrollPane添加到Frame中frame.add(sp);//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

程序明明向ScrollPane中添加了一個文本框和一個按鈕,但只能看到一個按鈕,卻看不到文本框,這是因為ScrollPane使用BorderLayout布局管理器的緣故,BorderLayout導致了該容器中只有一個組件被顯示出來。

4、LayoutManager布局管理器

如果要讓我們的程序在不同的操作系統下,都有相同的體驗,那么手動設置組件的位置和大小,無疑是一種災難,因為有太多的組件,需要分別設置不同操作系統下的大小和位置。為了解決這個問題,Java提供了LayoutManager布局管理器,可以根據運行平臺來自動調整組件大小,程序員不用再手動設置組件大小和位置了,只需要為容器選擇合適的布局管理器即可。

AWT中接口LayoutManager有五個實現類:GridLayout(網格布局)、FlowLayout(流式布局)、CardLayout(卡片布局)、GridBagLayout(網格包布局)和BorderLayout(邊框布局)。為了簡化開發,Swing引入了一個新的布局管理器BoxLayout。

4.1、FlowLayout(流式布局)

在FlowLayout布局管理器中,組件像水流一樣向某方向流動(排列),遇到障礙(邊界)就折回,中心開始排列。在默認情況下,FlowLayout布局管理器從左向右排列所有組件,遇到邊界就會折回下一行重新開始。

構造方法方法功能
FlowLayout()使用默認的對齊方式及默認的垂直間距、水平間距創建FlowLayout布局管理器
FlowLayout(int align)使用指定的對齊方式及默認的垂直間距、水平間距創建FlowLayout布局管理器
FlowLayout(int align, int hgap, int vgap)使用指定的對齊方式及指定的垂直間距、水平間距創建FlowLayout布局管理器

FlowLayout中組件的排列方向(從左向右、從右向左、從中間向兩邊等),該參數應該使用FlowLayout類的靜態常量:FlowLayout.LEFT、FlowLayout.CENTER、FlowLayout.RIGHT。默認是左對齊。

FlowLayout中組件中間距通過整數設置,單位是像素,默認是5個像素。

代碼演示:

package Package1;import java.awt.*;public class FlowLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//通過setLayout()方法設置容器的布局管理器frame.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));//添加多個按鈕到frame中for (int i = 0; i < 10; i++) {frame.add(new Button("按鈕"+i));}//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

4.2、BorderLayout(邊框布局)

BorderLayout將容器分為EAST、SOUTH、WEST、CENTER五個區域,普通組件可以被放置在這5個區域的任意一個中。

?當改變使用BorderLayout的容器大小時,NORTH、SOUTH和CENTER區域水平調整,而EAST、WEST和CENTER區域垂直調整,使用BorderLayout有如下兩個注意點:

  • 當向使用BorderLayout布局的容器中添加組件時,需要指定要添加到哪個區域中。如果沒有指定添加到哪個區域中,則默認添加到中間區域中;
  • 如果向同一個區域中添加多個組件,后放入的組件會覆蓋先放入的組件。
構造方法方法功能
BorderLayout()使用默認的水平間距、垂直間距創建BorderLayout布局管理器
BorderLayout(int hgap, int vgap)使用指定的水平間距、垂直間距創建BorderLayout布局管理器

代碼演示:

package Package1;import java.awt.*;public class BorderLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//通過setLayout()方法設置容器的布局管理器frame.setLayout(new BorderLayout(30,10));//往frame的指定區域添加組件frame.add(new Button("北側按鈕"),BorderLayout.NORTH);frame.add(new Button("南側按鈕"),BorderLayout.SOUTH);frame.add(new Button("東側按鈕"),BorderLayout.EAST);frame.add(new Button("西側按鈕"),BorderLayout.WEST);frame.add(new Button("中間按鈕"),BorderLayout.CENTER);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

4.3、GridLayout(網格布局)

GridLayout布局管理器將容器分割成縱橫線分隔的網格,每個網格所占的區域大小相同。當向使用GridLayout布局管理器的容器中添加組件時,默認從左到右、從上到下依次添加到每個網格中。與FlowLayout不同的是,放置在GridLayout布局管理器中的各組件的大小由組件所處的區域決定(每個組件將自動占滿整個區域)。

構造方法方法功能
GridLayout(int rows, int cols)采用指定的行數、列數,以及默認的橫向間距、縱向間距將容器分割成多個網格。
GridLayout(int rows, int cols, int hgap, int vgap)采用指定的行數、列數,以及指定的橫向間距、縱向間距將容器分割成多個網格。

代碼演示:

package Package1;import java.awt.*;public class GridLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//通過setLayout()方法設置容器的布局管理器frame.setLayout(new BorderLayout());//創建一個Panel對象,里面存放一個TextField組件Panel p1 = new Panel();p1.add(new TextField(50));//把這個Panel添加到frame的北邊區域frame.add(p1,BorderLayout.NORTH);//創建一個Panel對象,并且設置它的布局管理器為GridLayoutPanel p2 = new Panel();p2.setLayout(new GridLayout(3,5,4,4));//往Panel中添加內容for (int i = 0; i < 10; i++) {p2.add(new Button(i+""));}p2.add(new Button("+"));p2.add(new Button("-"));p2.add(new Button("*"));p2.add(new Button("/"));p2.add(new Button("."));//把當前的Panel添加到frame中frame.add(p2,BorderLayout.CENTER);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(500,200,400,250);//設置Frame可見frame.setVisible(true);} }

4.4、GridBagLayout(網格包布局)

GridBagLayout布局管理器的功能最強大,但也最復雜,與GirdLayout布局管理器不同的是,在GridBagLayout布局管理器中,一個組件可以跨越一個或多個網格,并且可以設置網格的大小互不相同,從而增加了布局的靈活性。當窗口的大小發生變化時,GridBagLayout布局管理器也可以準確地控制窗口各部分的拉伸。

由于在GirdBagLayout布局中,每個組件可以占用多個網格,此時,我們往容器中添加組件的時候,就需要具體地控制每個組件占用多少個網格,java提供的GridBagConstraints類,與特定的組件綁定,可以完成具體大小和跨越性的設置。

GirdBagConstraints API:

變量和類型字段描述
static intBOTH水平和垂直調整組件大小
static intCENTER將組件放在其顯示區域的中心
static intEAST將組件放在顯示區域的右側,垂直居中
static intREMAINDER指定此組件是其列或行中的最后一個組件
intgridheight指定組件顯示區域的列中的單元格數
intgridwidth指定組件顯示區域的行中單元格數
intgridx指定包含組件顯示區域前沿的單元格,其中一行中的第一個單元格具有gridx=0
intgridy指定組件顯示區域頂部的單元格,其中最頂層的單元格為gridy=0
doubleweightx指定如何分配額外的水平空間
doubleweighty指定如何分配額外的垂直空間

代碼演示:

package Package1;import java.awt.*;public class GirdBagLayoutDemo {public static void main(String[] args) {//創建Frame對象Frame frame = new Frame("這是一個窗口容器Frame");//創建GridBagLayout對象GridBagLayout gbLayout = new GridBagLayout();//把Frame對象的布局管理器設置為GridBagLayoutframe.setLayout(gbLayout);//創建GridBagConstraints對象GridBagConstraints gbCon = new GridBagConstraints();/*設置所有的GridBagConstraints對象的fill屬性為GridBagConstraints.BOTH。當有空白區域時,組件自動擴大占滿空白區域*/gbCon.fill = GridBagConstraints.BOTH;//設置GridBagConstraints對象的weightx設置為1,表示橫向擴展比例為1gbCon.weightx = 1;//把GridBagConstraints的weighty設置為1,表示縱向擴展比例為1gbCon.weighty = 1;//創建容量為10的Button數組并初始化Button[] btns = new Button[10];for (int i = 0; i < btns.length; i++) {btns[i] = new Button("按鈕"+i);}//往frame中添加數組中的第0,1,2個ButtonaddComponent(frame,btns[0],gbLayout,gbCon);addComponent(frame,btns[1],gbLayout,gbCon);addComponent(frame,btns[2],gbLayout,gbCon);//把GridBagConstraints的gridwidth設置為GridBagConstraints.REMAINDER,表明當前組件是橫向最后一個組件gbCon.gridwidth = GridBagConstraints.REMAINDER;//把Button數組中第3個按鈕添加到frame中addComponent(frame,btns[3],gbLayout,gbCon);//把Button數組中第4個按鈕添加到frame中addComponent(frame,btns[4],gbLayout,gbCon);//把GridBagConstraints的gridheight和gridwidth設置為2,表示縱向和橫向會占用2個網格gbCon.gridwidth = 2;gbCon.gridheight = 2;//把Button數組中第5個按鈕添加到frame中addComponent(frame,btns[5],gbLayout,gbCon);//把GridBagConstraints的gridheight和gridwidth設置為1,表示縱向會占用1個網格gbCon.gridwidth = 1;gbCon.gridheight = 1;//把Button數組中第6個按鈕添加到frame中addComponent(frame,btns[6],gbLayout,gbCon);//把GridBagConstraints的gridwidth設置為GridBagConstraints.REMAINDER,表明當前組件是橫向最后一個組件gbCon.gridwidth = GridBagConstraints.REMAINDER;//把Button數組中第7個按鈕添加到frame中addComponent(frame,btns[7],gbLayout,gbCon);//把GridBagConstraints的gridheight設置為1,表示縱向會占用1個網格gbCon.gridwidth = 1;gbCon.gridheight = 1;//把Button數組中第8,9個按鈕添加到frame中addComponent(frame,btns[8],gbLayout,gbCon);addComponent(frame,btns[9],gbLayout,gbCon);//設置frame為最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置frame可見frame.setVisible(true);}public static void addComponent(Container container, Component c, GridBagLayout gbLayout, GridBagConstraints gbCon) {gbLayout.setConstraints(c,gbCon);container.add(c);} }

4.5、CardLayout(卡片布局)

CardLayout布局管理器以時間而非空間來管理它里面的組件,它將加入容器的所有組件看成一疊卡片(每個卡片其實就是一個組件),每次只有最上面的哪個Component才可見。

方法名稱方法功能
CardLayout()創建默認的CardLayout布局管理器
CardLayout(int hgap, int vgap)通過指定卡片與容器左右邊界的間距(hgap)、上下邊界的間距(vgap)的間距來創建CardLayout布局管理器
first(Container target)顯示target容器中的第一張卡片
last(Container target)顯示target容器中的最后一張卡片
previous(Container target)顯示target容器中的前一張卡片
next(Container target)顯示target容器中的后一張卡片
show(Container target, String name)顯示target容器中指定名字的卡片

代碼演示:

package Package1;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class CardLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//創建一個Panel,用來存儲多張卡片Panel p1 = new Panel();//創建CardLayout對象,并且把該對象設置給p1CardLayout cLayout = new CardLayout();p1.setLayout(cLayout);//往p1中存儲多個組件String[] names = {"第一張", "第二張", "第三張", "第四張", "第五張", "第六張"};for (int i = 0; i < names.length; i++) {//每次添加都是作為最后一個組件添加到末尾p1.add(names[i], new Button(names[i])); //添加時指定組件的名字}//把p1放到frame的中間區域frame.add(p1, BorderLayout.CENTER);//創建另外一個Panel,用來存放5個按鈕組件Panel p2 = new Panel();Button btn1 = new Button("上一張");Button btn2 = new Button("下一張");Button btn3 = new Button("第一張");Button btn4 = new Button("最后一張");Button btn5 = new Button("第三張");//創建一個事件監聽器,監聽按鈕的點擊動作ActionListener listener = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String actionCommand = e.getActionCommand(); //這個字符串其實就是按鈕上的文字switch (actionCommand) {case "上一張":cLayout.previous(p1);break;case "下一張":cLayout.next(p1);break;case "第一張":cLayout.first(p1);break;case "最后一張":cLayout.last(p1);break;case "第三張":cLayout.show(p1, "第三張");break;}}};//把當前事件監聽器和多個按鈕綁定到一起btn1.addActionListener(listener);btn2.addActionListener(listener);btn3.addActionListener(listener);btn4.addActionListener(listener);btn5.addActionListener(listener);//把按鈕添加到容器p2中p2.add(btn1);p2.add(btn2);p2.add(btn3);p2.add(btn4);p2.add(btn5);//把p2放到frame的南邊區域frame.add(p2, BorderLayout.SOUTH);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400, 200, 500, 300);//設置Frame可見frame.setVisible(true);} }

4.6、BoxLayout(盒子布局)

為了簡化開發,Swing引入了一個新的布局管理器BoxLayout。BoxLayout可以在垂直和水平兩個方向上擺放GUI組件,BoxLayout提供了如下一個簡單的構造器:

方法名稱方法功能
BoxLayout(Container target, int axis)指定創建基于target容器的BoxLayout布局管理器,該布局管理器里的組件按axis方向排列。其中axis有BoxLayout.X_AXIS(橫向)和BoxLayout.Y_AXIS(縱向)兩個方向。

代碼演示:

package Package1;import javax.swing.*; import java.awt.*;public class BoxLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//基于frame容器創建一個BoxLayout對象,并且該對象存放組件是垂直存放BoxLayout boxLayout = new BoxLayout(frame,BoxLayout.Y_AXIS);//把BoxLayout設置給frameframe.setLayout(boxLayout);//往frame中添加兩個Button組件frame.add(new Button("按鈕1"));frame.add(new Button("按鈕2"));//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

4.6.1、Box容器

為了更方便地使用BoxLayout,在java.swing包中,提供了一個新的容器Box,該容器地默認布局管理器就是BoxLayout,大多數情況下,使用Box容器去容納多個GUI組件,然后再把Box容器作為一個組件,添加到其它地容器中,從而形成整體窗口布局。

方法名稱方法功能
static Box createHorizontalBox()創建一個水平排列組件的Box容器
static Box createVerticalBox()創建一個垂直排列組件的Box容器

代碼演示:

package Package1;import javax.swing.*; import java.awt.*;public class BoxLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//創建一個水平排列組件的Box容器Box hBox = Box.createHorizontalBox();//往當前容器中添加兩個按鈕hBox.add(new Button("水平按鈕1"));hBox.add(new Button("水平按鈕2"));//創建一個垂直排列組件的Box容器Box vBox = Box.createVerticalBox();//往當前容器中添加兩個按鈕vBox.add(new Button("垂直按鈕1"));vBox.add(new Button("垂直按鈕2"));//把兩個Box添加到Frame中展示frame.add(hBox,BorderLayout.NORTH);frame.add(vBox,BorderLayout.CENTER);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

通過上面的演示,我們會發現,被它管理的容器中的組件之間是沒有間隔的,是不是特別的美觀,但之前學習的幾種布局,組件之間都會有一些間距,那使用BoxLayout如何給組件設置間距呢?

其實很簡單,我們只需要在原有的組件需要間隔的地方,添加間隔即可,而每個間隔可以是一個組件,只不過該組件沒有內容,僅僅起到一種分隔的作用。

Box類中,提供了幾個方便的靜態方法來生成這些間隔組件:

方法名稱方法功能
static Component createHorizontalGlue()創建一條水平Glue(可在兩個方向上同時拉伸的間距)。
static Component createVerticalGlue()創建一條垂直Glue(可在兩個方向上同時拉伸的間距)。
static Component createHorizontalStrut(int width)創建一條指定寬度(寬度固定,不能拉伸)的水平Strut(可在垂直方向上拉伸的間距)。
static Component createVerticalStrut(int height)創建一條只當高度(高度固定,不能拉伸)的垂直Strut(可在水平方向上拉伸的間距)。

代碼演示:

package Package1;import javax.swing.*; import java.awt.*;public class BoxLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//創建一個水平排列組件的Box容器Box hBox = Box.createHorizontalBox();//往當前容器中添加兩個按鈕hBox.add(new Button("水平按鈕1"));hBox.add(Box.createHorizontalGlue()); //該分隔在兩個方向上都可以拉伸hBox.add(new Button("水平按鈕2"));hBox.add(Box.createHorizontalStrut(20));hBox.add(new Button("水平按鈕3"));//創建一個垂直排列組件的Box容器Box vBox = Box.createVerticalBox();//往當前容器中添加兩個按鈕vBox.add(new Button("垂直按鈕1"));vBox.add(Box.createVerticalGlue()); //該分隔在兩個方向上都可以拉伸vBox.add(new Button("垂直按鈕2"));vBox.add(Box.createVerticalStrut(20));vBox.add(new Button("垂直按鈕3"));//把兩個Box添加到Frame中展示frame.add(hBox,BorderLayout.NORTH);frame.add(vBox,BorderLayout.CENTER);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

5、AWT中常用組件

5.1、基本組件

組件名功能
Button按鈕
Canvas用于繪圖的畫布
Checkbox復選框組件(也可當作單選框組件使用)
CheckboxGroup用于將多個Checkbox組件合成一組,一組Checkbox組件將只有一個可以被選中,即全部變成單選框組件
Choice下拉選擇框
Frame窗口,在GUI程序里通過該類創建窗口
Label標簽類,用于放置提示文本
List列表框組件,可以添加多項條目。條目通過調用列表元素對象的toString()方法來顯示其信息
Panel不能單獨存在的基本容器類,必須放到其它容器中
Scrollbar滑動條組件。如果需要用戶輸入位于某個范圍的值,就可以使用滑動條組件。當創建一個滑動條時,必須指定它的方向、初始值、滑塊的大小、最小值和最大值。
ScrollPane帶水平及垂直滾動條的容器組件
TextArea多行文本域
TextField單行文本框

這些AWT組件的用法比較簡單,可以查閱API文檔來獲取它們的各自構造方法、成員方法等詳細信息。

代碼演示:

package Package1;import javax.swing.*; import java.awt.*;public class BasicComponentDemo {//組裝界面Frame frame = new Frame("這是一個窗口容器Frame");TextArea ta = new TextArea(5,20); //文本域Choice colorChooser = new Choice(); //下拉選擇框CheckboxGroup cbg = new CheckboxGroup(); //一組CheckboxCheckbox male = new Checkbox("男",cbg,true);Checkbox female = new Checkbox("女",cbg,false);Checkbox isMarried = new Checkbox("是否已婚?"); //一個CheckboxTextField tf = new TextField(50); //單行文本框Button ok = new Button("確認"); //按鈕List colorList = new List(6,true); //支持多選的6行列表//組裝界面public void init() {//組裝選擇部分為cBoxBox cBox = Box.createHorizontalBox();colorChooser.add("紅色");colorChooser.add("綠色");colorChooser.add("藍色");cBox.add(colorChooser);cBox.add(male);cBox.add(female);cBox.add(isMarried);//組裝文本域和選擇部分為topleftBox topLeft = Box.createVerticalBox();topLeft.add(ta);topLeft.add(cBox);//組裝topleft和列表框為top,并放置在frame的中間區域Box top = Box.createHorizontalBox();top.add(topLeft);colorList.add("紅色");colorList.add("綠色");colorList.add("藍色");top.add(colorList);frame.add(top,BorderLayout.CENTER);//組裝底部為bBox,并放置在frame的南邊區域Box bBox = Box.createHorizontalBox();bBox.add(tf);bBox.add(ok);frame.add(bBox,BorderLayout.SOUTH);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);}public static void main(String[] args) {new BasicComponentDemo().init();} }

5.2、Dialog(對話框)

Dialog是Window類的子類,是一個容器類,屬于特殊組件。Dialog是可以獨立存在的頂級窗口,因此用法與普通窗口的用法幾乎完全一樣,但是使用對話框需要注意下面兩點:

  • 對話框通常依賴于其它窗口,就是通常需要有一個父窗口;
  • 對話框有非模式(non-modal)和模式(modal)兩種。當某個模式對話框被打開后,該模式對話框總是位于它的父窗口之上,在模式對話框被關閉之前,父窗口無法獲得焦點。
方法名稱方法功能
Dialog(Frame owner, String title, boolean modal)

創建一個對話框對象:

owner:當前對話框的父窗口;

title:當前對話框的標題;

modal:當前對話框是否是模式對話框。true / false

代碼演示:

package Package1;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class DialogDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//創建兩個對話框Dialog對象,一個模式的,一個非模式的Dialog mDialog = new Dialog(frame,"模式對話框",true);Dialog dialog = new Dialog(frame,"非模式對話框",false);//通過setBounds()方法設置Dialog 的位置及大小mDialog.setBounds(200,100,500,300);dialog.setBounds(200,100,500,300);//創建兩個按鈕Button btn1 = new Button("打開模式對話框");Button btn2 = new Button("打開非模式對話框");//給這兩個按鈕添加點擊后的行為btn1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {mDialog.setVisible(true);}});btn2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {dialog.setVisible(true);}});//把按鈕添加到frame中frame.add(btn1,BorderLayout.NORTH);frame.add(btn2,BorderLayout.CENTER);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

5.2.1、FileDialog(文件對話框)

Dialog類還有一個子類FileDialog,它代表一個文件對話框,用于打開或者保存文件,需要注意的是FileDialog無法確定模態或者非模態,這是因為FIleDialog依賴于運行平臺的實現,如果運行平臺的文件對話框是模態的,那么FileDialog也是模態的;否則就是非模態的。

方法名稱方法功能
FileDialog(Frame parent, String title, int mode)

創建一個文件對話框:

parent:指定父窗口;

title:對話框標題;

mode:文件對話框類型,如果指定為FileDialog.LOAD,用于打開文件;如果指定為FileDialog.SAVE,用于保存文件。

String getDirectory()獲取被打開或保存文件的絕對路徑
String getFile()獲取被打開或保存文件的文件名

代碼演示:

package Package1;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class FileDialogDemo {public static void main(String[] args) {Frame frame = new Frame("這是一個窗口容器Frame");//創建2個FileDialog對象FileDialog f1 = new FileDialog(frame,"選擇要打開的文件",FileDialog.LOAD);FileDialog f2 = new FileDialog(frame,"選擇要保存的路徑",FileDialog.SAVE);//創建兩個按鈕Button b1 = new Button("打開文件");Button b2 = new Button("保存文件");//給這兩個按鈕設置點擊后的行為:獲取打開或者保存的路徑文件名b1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f1.setVisible(true); //代碼會阻塞到這里//獲取選擇的路徑及文件String directory = f1.getDirectory();String file = f1.getFile();System.out.println("打開的文件路徑為:"+directory);System.out.println("打開的文件名稱為:"+file);}});b2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f2.setVisible(true); //代碼會阻塞到這里String directory = f2.getDirectory();String file = f2.getFile();System.out.println("保存的文件路徑為:"+directory);System.out.println("保存的文件名稱為:"+file);}});//把按鈕添加到frame中frame.add(b1,BorderLayout.NORTH);frame.add(b2,BorderLayout.CENTER);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

6、事件處理

前面介紹了如何放置各種組件,從而得到了豐富多彩的圖形界面,但這些界面還不能響應用戶的任何操作。因為在AWT編程中,所有用戶的操作,都必須要經過一套事件處理機制來完成,而Frame和組件本身沒有事件處理能力。

6.1、GUI事件處理機制

定義:當在某個組件上發生某個操作的時候,會自動地觸發一段代碼的執行。

在GUI事件處理機制中涉及到4個重要的概念需要理解:

  • 事件源(Event Source):操作發生的場所,通常指某個組件,例如按鈕、窗口等。
  • 事件(Event):在事件源上發生的操作可以叫作事件,GUI會把事件都封裝到一個Event對象中,如果需要直到該事件的詳細信息,就可以通過Event對象來獲取。
  • 事件監聽器(Event Listener):當在某個事件源上發生了某個事件,事件監聽器就可對這個事件進行處理。
  • 注冊監聽:把某個事件監聽器(A)通過某個事件(B)綁定到某個事件源(C)上,當在事件源C上發生了事件B之后,那么事件監聽器A的代碼就會自動執行。
  • 使用步驟:

  • 創建事件源組件對象;
  • 自定義類,實現XxxListener接口,重寫方法;
  • 創建事件監聽器對象(自定義類對象);
  • 調用事件源組件對象的addXxxListener方法完成注冊監聽。
  • 代碼演示:

    package Package1;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class EventDemo {Frame frame = new Frame("這是一個窗口容器Frame");TextField tf = new TextField(30); //30列的單行文本框Button ok = new Button("確定");//組裝視圖public void init() {MyListener myListener = new MyListener(); //創建自定義監聽器對象ok.addActionListener(myListener); //注冊監聽//把tf和ok翻入frame中frame.add(tf,BorderLayout.NORTH);frame.add(ok);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);}//自定義事件監聽器private class MyListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {tf.setText("Hello World");}}public static void main(String[] args) {new EventDemo().init();} }

    6.2、GUI中常見事件和事件監聽器

    事件監聽器必須實現事件監聽器接口,AWT提供了大量的事件監聽器接口用于實現不同類型的事件監聽器,來監聽不同類型的事件。AWT中提供了豐富的事件類,用于封裝不同組件上所發生的特定操作,AWT的事件類都是AWTEvent類的子類,AWTEvent類是EventObject類的子類。

    6.2.1、事件

    AWT把事件分為了兩大類:

    1、低級事件:這類事件是基于某個特定動作的事件。比如進入、點擊、拖放等動作的鼠標事件,再比如得到焦點和失去焦點等焦點事件。

    事件觸發時機
    ComponentEvent組件事件,當組件尺寸發生變化、位置發生移動、顯示/隱藏狀態發生改變時觸發該事件。
    ContainerEvent容器事件,當容器里發生添加組件、刪除組件時觸發該事件。
    WindowEvent窗口事件,當窗口狀態發生改變(如打開、關閉、最大化、最小化)時觸發該事件。
    FocusEvent焦點事件,當組件得到焦點或失去焦點時觸發該事件。
    KeyEvent鍵盤事件,當案件被按下、松開、單機時觸發該事件。
    MouseEvent鼠標事件,當進行單機、按下、松開、移動鼠標等動作時觸發該事件。
    PaintEvent組件繪制事件,該事件是一個特殊的事件類型,當GUI組件調用update/paint方法來呈現自身時觸發該事件,該事件并非專用于事件處理模型。

    2、高級事件:這類事件并不會基于某個特定動作,而是根據功能含義定義的事件。

    事件觸發時機
    ActionEvent動作事件,當按鈕、菜單項被單擊,在TextField中按Enter鍵時觸發。
    AdjustmentEvent調節事件,在滑動條上移動滑塊以調節數值時觸發該事件。
    ItemEvent選項事件,當用戶選中某項,或取消選中某項時觸發該事件。
    TextEvent文本事件,當文本框、文本域里的文本發生改變時觸發該事件。

    6.2.2、事件監聽器

    不同的事件需要使用不同的事件監聽器監聽,不同的監聽器需要實現不同的監聽器接口,當指定事件發生后,事件監聽器就會調用所包含的事件處理器(實例方法)來處理事件。

    事件類別描述信息監聽器接口名
    ActionEvent激活組件ActionListener
    ItemEvent選擇了某些項目ItemListener
    MouseEvent鼠標移動MouseMotionListener
    MouseEvent鼠標點擊等MouseListener
    KeyEvent鍵盤輸入KeyListener
    FocusEvent組件收到或失去焦點FocusListener
    AdjustmentEvent移動了滾動條等組件AdjustmentListener
    ComponentEvent對象移動縮放顯示隱藏等ComponentListener
    WindowEvent窗口收到窗口級事件WindowListener
    ContainerEvent容器中增加或刪除了組件ContainerListener
    TextEvent文本字段或文本區發生改變TextListener

    6.2.3、案例

    案例1:

    package Package1;import javax.swing.*; import java.awt.*; import java.awt.event.*;public class ListenerDemo {public static void main(String[] args) {Frame frame = new Frame();//創建組件TextField tf = new TextField(30);Choice names = new Choice();names.add("張三");names.add("李四");names.add("王五");//給文本域添加TextListener,監聽內容的變化tf.addTextListener(new TextListener() {@Overridepublic void textValueChanged(TextEvent e) {String text = tf.getText();System.out.println("當前文本框的內容為:"+text);}});//給下拉選擇框添加ItemListener,監聽條目選項的變化names.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {Object item = e.getItem();System.out.println("當前選中的條目為:"+item);}});//給frame注冊ContainerListener監聽器,監聽容器中組件的添加frame.addContainerListener(new ContainerListener() {@Overridepublic void componentAdded(ContainerEvent e) {Component child = e.getChild();System.out.println("frame中添加了:"+child);}@Overridepublic void componentRemoved(ContainerEvent e) {}});//添加到frame中Box hBox = Box.createHorizontalBox();hBox.add(names);hBox.add(tf);frame.add(hBox);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

    案例2:給Frame設置WindowListener,監聽用戶點擊x的動作,如果用戶點擊x,則關閉當前窗口。

    package Package1;import java.awt.*; import java.awt.event.*;public class ListenerDemo {public static void main(String[] args) {Frame frame = new Frame();//設置WindowListener,監聽用戶點擊x的動作,如果點擊x,則關閉窗口frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {//停止當前程序System.exit(0); //退出JVM}});//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);} }

    7、菜單組件

    在實際開發中,除了主界面,還有一類比較重要的內容就是菜單相關組件,可以通過菜單相關組件很方便地使用特定的功能。在AWT中,菜單相關組件的使用和之前學習的組件是一模一樣的,只需要把菜單條、菜單、菜單項組合到一起,按照一定的布局,放入到容器中即可。

    下表給出常用的菜單相關組件:

    菜單組件名稱功能
    MenuBar菜單條,菜單的容器。
    Menu菜單組件,菜單項的容器。它也是MenuItem的子類,所以可作為菜單項使用。
    PopupMenu上下文菜單組件(右鍵菜單組件)。
    MenuItem菜單項組件。
    CheckboxMenuItem復選框菜單項組件。

    下圖是常見菜單相關組件繼承體系圖:

    菜單相關組件使用:

  • 準備菜單項組件,這些組件可以是MenuItem及其子類對象;
  • 準備菜單組件Menu或者PopupMenu(右擊彈出菜單),把第一步中準備好的菜單項組件添加進來;
  • 準備菜單條組件MenuBar,把第二步中準備好的菜單組件Menu添加進來;
  • 把第三步中準備好的菜單條組件添加到窗口對象中顯示。
  • 小技巧:

    • 如果要在某個菜單的菜單項之間添加分割線,那么只需要調用Menu的add(new MenuItem("-"));即可;
    • 如果要給某個菜單項關聯快捷鍵功能,那么只需要在創建菜單項對象時設置即可,例如給菜單項關聯Ctrl+Shift+Q快捷鍵,只需要:new MenuItem("菜單項名字",new MenuShortCun(KeyEvent.VK_Q,true));

    案例1:

    代碼演示:

    package Package1;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent;public class MenuDemo {Frame frame = new Frame("這是一個窗口容器Frame");//創建菜單條MenuBar menuBar = new MenuBar();//創建菜單組件Menu fileMenu = new Menu("文件");Menu editMenu = new Menu("編輯");Menu formatMenu = new Menu("格式");//創建菜單項組件MenuItem auto = new MenuItem("自動換行");MenuItem copy = new MenuItem("復制");MenuItem paste = new MenuItem("粘貼");MenuItem comment = new MenuItem("注釋",new MenuShortcut(KeyEvent.VK_Q,true)); //關聯快捷鍵ctrl+shift+QMenuItem cancelComment = new MenuItem("取消注釋");//創建文本框TextArea ta = new TextArea(6,40);//組裝視圖public void init() {comment.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {ta.append("您點擊了菜單項:"+e.getActionCommand()+"\n");}});formatMenu.add(comment);formatMenu.add(cancelComment);//組裝編輯菜單editMenu.add(auto);editMenu.add(copy);editMenu.add(paste);editMenu.add(formatMenu);//組裝菜單條menuBar.add(fileMenu);menuBar.add(editMenu);//把菜單條和文本框放入frame中frame.setMenuBar(menuBar);frame.add(ta,BorderLayout.CENTER);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);}public static void main(String[] args) {new MenuDemo().init();} }

    案例2:

    package Package1;import java.awt.*; import java.awt.event.*;public class MenuDemo {Frame frame = new Frame("這是一個窗口容器Frame");//創建文本域TextArea ta = new TextArea("默認顯示的文本\n",6,40);//創建Panel容器Panel p = new Panel();//創建PopupMenuPopupMenu popupMenu = new PopupMenu();//創建菜單項MenuItem comment = new MenuItem("注釋");MenuItem cancelComment = new MenuItem("取消注釋");MenuItem copy = new MenuItem("復制");MenuItem save = new MenuItem("保存");//組裝視圖public void init() {ActionListener listener = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String actionCommand = e.getActionCommand();ta.append("您點擊了:"+actionCommand+"\n");}};comment.addActionListener(listener);cancelComment.addActionListener(listener);copy.addActionListener(listener);save.addActionListener(listener);//組裝PopupMenupopupMenu.add(comment);popupMenu.add(cancelComment);popupMenu.add(copy);popupMenu.add(save);p.add(popupMenu);//設置Panel的大小p.setPreferredSize(new Dimension(400,100));//給Panel注冊鼠標事件,監聽用戶釋放鼠標的動作,展示菜單p.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {boolean flag = e.isPopupTrigger();if(flag) {//顯示PopupMenupopupMenu.show(p,e.getX(),e.getY());}}});//放置ta和pframe.add(ta,BorderLayout.CENTER);frame.add(p,BorderLayout.SOUTH);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);}public static void main(String[] args) {new MenuDemo().init();} }

    8、繪圖

    很多程序如各種游戲都需要在窗口中繪制各種圖形,除此之外,即使在開發javaEE項目時,有時候也必須“動態”地向客戶端生成各種圖形、圖標,比如圖形驗證碼、統計圖等,這都需要利用AWT地繪圖功能。

    8.1、組件繪圖原理

    之前我們已經學過很多組件,例如Button、Frame。Checkbox等等,不同的組件,展示出來的圖形都不一樣,其實這些組件展示出來的圖形,其本質就是用AWT的繪圖來完成的。

    在AWT中,真正提供繪圖功能的是Graphics對象,那么Component組件和Graphics對象存在什么關系,才能讓Component繪制自身圖形呢?在Component類中,提供了下列三個方法來完成組件圖形的繪制與刷新:

    • paint(Graphics g):繪制組件的外觀;
    • update(Graphics g):調用內部paint方法,刷新組件外觀;
    • repaint():調用update方法,刷新組件外觀。

    一般情況下,update和paint方法是由AWT系統負責調用,如果程序要希望系統重新繪制組件,可以調用repaint()方法完成。

    8.2、Graphics對象的使用

    AWT中提供了Canvas類充當畫布,提供了Graphics類來充當畫筆,通過調用Graphics對象的setColor()方法可以給畫筆設置顏色。

    畫圖的步驟:

  • 自定義類,繼承Canvas類,重寫paint(Graphics g)方法完成畫圖;
  • 在paint()方法內部,真正開始畫圖之前調用Graphics對象的setColor()、setFont()等方法設置畫筆的顏色、字體等屬性;
  • 調用Graphics畫筆的drawXxx()方法開始畫圖。
  • 其實畫圖的核心就在于使用Graphics畫筆在Canvas畫布上畫出什么顏色、什么樣式的圖形,所以核心在畫筆上,下表給出了Graphics類中常用的一些方法:

    方法名稱方法功能
    setColor(Color c)設置顏色
    setFont(Font font)設置字體
    drawLine()繪制直線
    drawRect()繪制矩形
    drawRoundRect()繪制圓角矩形
    drawOval()繪制橢圓形
    drawPolygon()繪制多邊形
    drawArc()繪制圓弧
    drawPolyline()繪制折線
    fillRect()填充矩形區域
    fillRoundRect()填充圓角矩形區域
    fillOval()填充橢圓區域
    fillPolygon()填充多邊形區域
    fillArc()填充圓弧對應的扇形區域
    drawImage()繪制位圖

    案例1——繪制矩形和橢圓:

    package Package1;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class GraphicsDemo {private final String RECT_SHAPE = "rect";private final String OVAL_SHAPE = "oval";private Frame frame = new Frame("這是一個窗口容器Frame");Button btnRect = new Button("繪制矩形");Button btnOval = new Button("繪制橢圓");//創建Panel,承載按鈕Panel p = new Panel();//定義一個變量,記錄當前要繪制橢圓還是矩形private String shape = "";//自定義類,繼承Canvas類,重寫paint(Graphics g)方法完成畫圖private class MyCanvas extends Canvas {@Overridepublic void paint(Graphics g) {//繪制不同的圖形if(shape.equals(RECT_SHAPE)) {//繪制矩形g.setColor(Color.BLACK); //設置當前畫筆的顏色為黑色g.drawRect(50,100,100,50);}else if(shape.equals(OVAL_SHAPE)) {//繪制橢圓g.setColor(Color.RED); //設置當前畫筆的顏色為紅色g.drawOval(100,50,50,100);}}}//自定義畫布對象MyCanvas drawArea = new MyCanvas();//組裝視圖public void init() {btnRect.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {shape = RECT_SHAPE; //修改標記的值為rectdrawArea.repaint();}});btnOval.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {shape = OVAL_SHAPE; //修改標記的值為rectdrawArea.repaint();}});//設置drawArea的大小drawArea.setPreferredSize(new Dimension(300,200));frame.add(drawArea);p.add(btnRect);p.add(btnOval);frame.add(p,BorderLayout.SOUTH);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);}public static void main(String[] args) {new GraphicsDemo().init();} }

    Java也可用于開發一些動畫,就是間隔一定的時間(通常小于0.1秒)重新繪制新的圖像,兩次繪制的圖像之間差異較小,肉眼看起來就成了所謂的動畫。為了實現間隔一定時間就重新調用組件的repaint()方法,可以借助于Swing提供的Timer類,Timer類是一個定時器,它有如下一個構造器:Timer(int delay, ActionListener listener):每間隔delay毫秒,系統自動觸發ActionListener監聽器里的事件處理器方法,在方法內部我們就可以調用組件的repaint()方法,完成組件重繪。

    案例2——彈球小游戲:

    package Package1;import javax.swing.*; import java.awt.*; import java.awt.event.*;public class GraphicsDemo {//創建窗口對象private Frame frame = new Frame("這是一個窗口容器Frame");//設置桌面寬度和高度private final int TABLE_WIDTH = 300;private final int TABLE_HEIGHT = 400;//設置球拍的寬度和高度private final int RACKET_WIDTH = 60;private final int RACKET_HEIGHT = 20;//定義變量,記錄球拍的坐標private int racketX = 120;private final int racketY = 340;//設置小球的大小private final int BALL_SIZE = 16;//定義變量,記錄小球的坐標private int ballX = 120;private int ballY = 20;//定義變量,記錄小球在x和y方向上分別移動的速度private int speedX = 5;private int speedY = 0;//定義變量,表示當前游戲是否已結束private boolean isOver = false;//聲明一個定時器private Timer timer;//自定義一個類繼承Canvas充當畫布private class MyCanvas extends Canvas {@Overridepublic void paint(Graphics g) {//在這里繪制內容if (isOver) {//游戲結束g.setColor(Color.BLUE);g.setFont(new Font("Times", Font.BOLD, 30));g.drawString("游戲結束!", 80, 200);} else {//游戲中//繪制小球g.setColor(Color.RED);g.fillOval(ballX, ballY, BALL_SIZE, BALL_SIZE);//繪制球拍g.setColor(Color.PINK);g.fillRect(racketX, racketY, RACKET_WIDTH, RACKET_HEIGHT);}}}//創建繪畫區域MyCanvas myCanvas = new MyCanvas();//組裝視圖以及游戲邏輯的控制public void init() {//完成球拍坐標的變化KeyListener listener = new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {//獲取當前按下的鍵int keyCode = e.getKeyCode();if (keyCode == KeyEvent.VK_LEFT) {//<- 應該向左移動if (racketX > 0) {racketX -= 10;}}if (keyCode == KeyEvent.VK_RIGHT) {//-> 應該向右移動if (racketX < TABLE_WIDTH - RACKET_WIDTH) {racketX += 10;}}}};MouseMotionListener mouseMotionListener = new MouseMotionAdapter() {@Overridepublic void mouseMoved(MouseEvent e) {//獲取當前鼠標位置int mouseX = e.getX();if (mouseX < (RACKET_WIDTH / 2)) {//設置球拍的位置racketX = 0;} else if (mouseX > (TABLE_WIDTH - RACKET_WIDTH / 2)) {racketX = TABLE_WIDTH - RACKET_WIDTH;} else {racketX = mouseX - (RACKET_WIDTH / 2);}}};//給frame和myCanvas注冊監聽器frame.addKeyListener(listener);myCanvas.addKeyListener(listener);myCanvas.addMouseMotionListener(mouseMotionListener);frame.addMouseMotionListener(mouseMotionListener);//完成小球坐標的變化ActionListener task = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//更新小球的坐標speedY += 1;ballX += speedX;ballY += speedY;//根據邊界范圍,修正速度if (ballX <= 0 || ballX >= (TABLE_WIDTH - BALL_SIZE)) {speedX = -speedX; //反向運動}if (ballY <= 0 || (ballY > (racketY - BALL_SIZE) &&ballX >= (racketX - BALL_SIZE) && (ballX <= racketX + RACKET_WIDTH))) {speedY = -speedY;}if (ballY > (racketY - BALL_SIZE) &&(ballX < (racketX - BALL_SIZE) || ballX > (racketX + RACKET_WIDTH))) {//當小球超出了球拍的范圍,游戲結束//停止定時器timer.stop();//修改游戲是否結束的標記isOver = true;}//重繪界面myCanvas.repaint();}};timer = new Timer(30, task);timer.start();//myCanvas.setPreferredSize(new Dimension(TABLE_WIDTH, TABLE_HEIGHT));frame.add(myCanvas);//通過pack()方法設置最佳大小frame.pack();//設置Frame可見frame.setVisible(true);}public static void main(String[] args) {new GraphicsDemo().init();} }

    8.3、處理位圖

    如果僅僅繪制一些簡單的幾何圖形,程序的圖形效果依然比較單調。AWT也允許在組件上繪制位圖,Graphics提供了drawImage(Image image)方法用于繪制位圖,該方法需要一個Image參數代表位圖,通過該方法就可以繪制出指定的位圖。

    位圖使用步驟:

  • 創建Image的子類對象BufferedImage(int width, int height, int ImageType),創建時需要指定位圖的寬高及類型屬性;此時相當于在內存中生成了一張圖片;
  • 調用BufferedImage對象的getGraphics()方法獲取畫筆,此時就可以往內存中的這張圖片上繪圖了,繪圖的方法和之前學習的一模一樣;
  • 調用組件paint方法中提供的Graphics對象的drawImage()方法,一次性地將內存中地圖片BufferedImage繪制到特定的組件上。
  • 使用位圖繪制組件的好處:

    使用位圖來繪制組件,相當于實現類圖的緩沖區,此時繪圖時沒有直接把圖形繪制到組件上,而是先繪制到內存中的BufferedImage上,等全部繪制完畢,再一次性地將圖像顯示到組件上即可,這樣用戶的體驗會好一些。

    代碼演示:

    package Package1;import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage;public class ImageDemo {//定義窗口對象Frame frame = new Frame("這是一個窗口容器Frame");//定義畫圖區的寬高private final int AREA_WIDTH = 500;private final int AREA_HEIGHT = 400;//定義一個右鍵菜單,用于設置畫筆的顏色private PopupMenu colorMenu = new PopupMenu();private MenuItem redItem = new MenuItem("紅色");private MenuItem greenItem = new MenuItem("綠色");private MenuItem blueItem = new MenuItem("藍色");//定義一個變量,記錄當前畫筆的顏色,默認為黑色private Color forceColor = Color.BLACK;//創建一個BufferedImage位圖對象BufferedImage image = new BufferedImage(AREA_WIDTH, AREA_HEIGHT, BufferedImage.TYPE_INT_RGB);//通過位圖,獲取關聯的Graphics對象Graphics g = image.getGraphics();//自定義一個類,繼承Canvasprivate class MyCanvas extends Canvas {@Overridepublic void paint(Graphics g) {g.drawImage(image, 0, 0, null);}}MyCanvas myCanvas = new MyCanvas();//定義變量,記錄鼠標拖動過程中,上一次所處的坐標private int preX = -1;private int preY = -1;//組裝視圖public void init() {ActionListener listener = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String actionCommand = e.getActionCommand();switch (actionCommand) {case "紅色":forceColor = Color.RED;break;case "綠色":forceColor = Color.GREEN;break;case "藍色":forceColor = Color.BLUE;break;}}};redItem.addActionListener(listener);greenItem.addActionListener(listener);blueItem.addActionListener(listener);colorMenu.add(redItem);colorMenu.add(greenItem);colorMenu.add(blueItem);//把colorMenu設置給繪圖區域myCanvasmyCanvas.add(colorMenu);myCanvas.addMouseListener(new MouseAdapter() {@Override//當鼠標鍵抬起時被調用public void mouseReleased(MouseEvent e) {boolean popupTrigger = e.isPopupTrigger();if (popupTrigger) {colorMenu.show(myCanvas, e.getX(), e.getY());}//重置preX和preYpreX = -1;preY = -1;}});//設置位圖的背景為白色g.setColor(Color.WHITE);g.fillRect(0, 0, AREA_WIDTH, AREA_HEIGHT);//通過監聽鼠標的移動,完成繪制myCanvas.addMouseMotionListener(new MouseMotionAdapter() {@Override//該方法,當鼠標左鍵按下,并進行拖動時,會被調用public void mouseDragged(MouseEvent e) {if (preX > 0 && preY > 0) {g.setColor(forceColor);//畫線條,需要兩組坐標,分別代表線條的起點和終點g.drawLine(preX, preY, e.getX(), e.getY());}//修正preX和preY的值preX = e.getX();preY = e.getY();//重繪組件myCanvas.repaint();}});myCanvas.setPreferredSize(new Dimension(AREA_WIDTH, AREA_HEIGHT));frame.add(myCanvas);frame.pack();frame.setVisible(true);}public static void main(String[] args) {new ImageDemo().init();} }

    8.4、ImageIO的使用

    在實際生活中,很多軟件都支持打開本地磁盤已經存在的圖片,然后進行編輯,編輯完畢后,再重新保存到本地磁盤。如果使用AWT要文成這樣的功能,那么需要使用到ImageIO這個類,可以操作本地磁盤的圖片文件。

    方法名稱方法功能
    static BufferedImage read(File input)讀取本地磁盤圖片文件
    static BufferedImage read(InputStream input)讀取本地磁盤圖片文件
    static boolean write(RenderedImage img, String formatName, File output)往本地磁盤中輸出圖片文件

    代碼演示:

    package Package1;import javax.imageio.ImageIO; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;public class LASImage {private Frame frame = new Frame("這是一個窗口容器Frame");MenuBar menuBar = new MenuBar();Menu menu = new Menu("文件");MenuItem open = new MenuItem("打開");MenuItem save = new MenuItem("另存為");//聲明BufferedImage對象,記錄本地讀取到內存中的圖片BufferedImage image;private class MyCanvas extends Canvas {@Overridepublic void paint(Graphics g) {g.drawImage(image,0,0,null);}}MyCanvas myCanvas = new MyCanvas();//組裝視圖public void init() {open.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//打開一個文件對話框FileDialog fileDialog = new FileDialog(frame,"打開圖片",FileDialog.LOAD);fileDialog.setVisible(true);//獲取用戶選擇的圖片路徑以及名稱String directory = fileDialog.getDirectory();String file = fileDialog.getFile();try {image = ImageIO.read(new File(directory,file));myCanvas.repaint();} catch (IOException ex) {ex.printStackTrace();}}});save.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//展示一個文件對話框FileDialog fileDialog = new FileDialog(frame,"保存圖片",FileDialog.SAVE);fileDialog.setVisible(true);//獲取用戶設置的保存路徑以及文件名稱String directory = fileDialog.getDirectory();String file = fileDialog.getFile();try {ImageIO.write(image,"JPEG",new File(directory,file));} catch (IOException ex) {ex.printStackTrace();}}});menu.add(open);menu.add(save);menuBar.add(menu);frame.setMenuBar(menuBar);frame.add(myCanvas);//通過pack()方法設置最佳大小frame.pack();//設置Frame的位置和大小frame.setBounds(400,200,500,300);//設置Frame可見frame.setVisible(true);}public static void main(String[] args) {new LASImage().init();} }

    總結

    以上是生活随笔為你收集整理的Java图形化界面编程之——AWT的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    亚洲中文字幕在线无码一区二区 | 爽爽影院免费观看 | 亚洲 a v无 码免 费 成 人 a v | 女高中生第一次破苞av | 亚洲毛片av日韩av无码 | 99国产精品白浆在线观看免费 | 永久黄网站色视频免费直播 | 国产三级久久久精品麻豆三级 | 日本一卡2卡3卡四卡精品网站 | 久久精品中文字幕大胸 | 国产成人综合在线女婷五月99播放 | 亚洲毛片av日韩av无码 | 激情内射日本一区二区三区 | 午夜成人1000部免费视频 | 天下第一社区视频www日本 | 成在人线av无码免观看麻豆 | 无码人妻精品一区二区三区下载 | 日本乱偷人妻中文字幕 | 久久精品中文字幕一区 | 国产成人无码av一区二区 | 日韩欧美中文字幕公布 | 亚洲成a人片在线观看无码 | 国产疯狂伦交大片 | 中国大陆精品视频xxxx | 青青久在线视频免费观看 | 大地资源网第二页免费观看 | 无码成人精品区在线观看 | 久激情内射婷内射蜜桃人妖 | 日韩欧美中文字幕公布 | 亚洲无人区午夜福利码高清完整版 | 国产精品久久久久9999小说 | 亚洲精品午夜国产va久久成人 | 国产午夜手机精彩视频 | 欧美 丝袜 自拍 制服 另类 | 国产内射爽爽大片视频社区在线 | 欧美第一黄网免费网站 | 天堂а√在线地址中文在线 | 啦啦啦www在线观看免费视频 | 亚洲人成网站免费播放 | 亚洲色偷偷男人的天堂 | 亚洲中文字幕成人无码 | 一个人看的www免费视频在线观看 | 国产精品无码一区二区桃花视频 | 欧美 丝袜 自拍 制服 另类 | 国内精品久久久久久中文字幕 | 人妻熟女一区 | 少妇性俱乐部纵欲狂欢电影 | 帮老师解开蕾丝奶罩吸乳网站 | 久久综合激激的五月天 | 国产无av码在线观看 | 网友自拍区视频精品 | 成人精品视频一区二区 | 色综合天天综合狠狠爱 | 日韩少妇白浆无码系列 | 国产精品.xx视频.xxtv | 亚洲综合精品香蕉久久网 | 国产内射爽爽大片视频社区在线 | 日日躁夜夜躁狠狠躁 | 久久99精品国产.久久久久 | 成在人线av无码免观看麻豆 | 欧美日韩一区二区三区自拍 | a片在线免费观看 | 久久久中文久久久无码 | 国产亚洲人成a在线v网站 | 免费人成在线视频无码 | 中文字幕久久久久人妻 | 天天摸天天碰天天添 | 初尝人妻少妇中文字幕 | 国产精品va在线观看无码 | 狠狠噜狠狠狠狠丁香五月 | 东京无码熟妇人妻av在线网址 | 99久久精品午夜一区二区 | 色五月丁香五月综合五月 | 成人无码精品一区二区三区 | 色综合久久久久综合一本到桃花网 | 国精产品一品二品国精品69xx | 大屁股大乳丰满人妻 | 少妇性荡欲午夜性开放视频剧场 | 国产av久久久久精东av | 国产欧美亚洲精品a | 国产成人一区二区三区在线观看 | 国产乱子伦视频在线播放 | 日本精品高清一区二区 | 欧美大屁股xxxxhd黑色 | 秋霞成人午夜鲁丝一区二区三区 | 一本大道久久东京热无码av | 98国产精品综合一区二区三区 | 在线观看国产午夜福利片 | √天堂中文官网8在线 | 欧美日韩在线亚洲综合国产人 | 人人妻人人澡人人爽欧美一区九九 | 精品少妇爆乳无码av无码专区 | 中文字幕无码热在线视频 | аⅴ资源天堂资源库在线 | 天海翼激烈高潮到腰振不止 | 夜先锋av资源网站 | 日日碰狠狠躁久久躁蜜桃 | 帮老师解开蕾丝奶罩吸乳网站 | 男人扒开女人内裤强吻桶进去 | 精品一区二区三区波多野结衣 | 欧美国产日韩久久mv | 亚洲aⅴ无码成人网站国产app | 国产一区二区三区四区五区加勒比 | 日本大乳高潮视频在线观看 | 国产成人午夜福利在线播放 | 色五月五月丁香亚洲综合网 | 欧美日韩一区二区免费视频 | 国产乱子伦视频在线播放 | 精品无码国产自产拍在线观看蜜 | 亚洲日韩一区二区三区 | 日韩欧美成人免费观看 | 无码精品国产va在线观看dvd | 久久亚洲国产成人精品性色 | 男女性色大片免费网站 | 亚洲国产精品久久人人爱 | 国产香蕉97碰碰久久人人 | 欧美人与动性行为视频 | 国产又爽又黄又刺激的视频 | 久久久www成人免费毛片 | 亚洲s码欧洲m码国产av | 国产成人综合美国十次 | 国产精品人人妻人人爽 | 夫妻免费无码v看片 | 人妻少妇被猛烈进入中文字幕 | 精品人妻人人做人人爽 | 俺去俺来也www色官网 | 亚洲国产高清在线观看视频 | 国内精品久久久久久中文字幕 | 色婷婷综合中文久久一本 | 国产免费无码一区二区视频 | 精品国产国产综合精品 | 中文字幕无码日韩专区 | 日韩精品成人一区二区三区 | 一区二区三区乱码在线 | 欧洲 | 国产精品久久久久久无码 | 奇米影视7777久久精品人人爽 | 老熟妇乱子伦牲交视频 | 红桃av一区二区三区在线无码av | 精品偷拍一区二区三区在线看 | 久久综合色之久久综合 | 国产av剧情md精品麻豆 | 久久久婷婷五月亚洲97号色 | 九九综合va免费看 | 成人片黄网站色大片免费观看 | 无码人妻丰满熟妇区毛片18 | 大乳丰满人妻中文字幕日本 | 国产美女极度色诱视频www | 一本大道伊人av久久综合 | 97久久精品无码一区二区 | 欧美性猛交xxxx富婆 | 无码吃奶揉捏奶头高潮视频 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲热妇无码av在线播放 | 亚洲成av人影院在线观看 | 久久久久成人精品免费播放动漫 | 丰满少妇熟乱xxxxx视频 | 成人av无码一区二区三区 | 一本大道伊人av久久综合 | 麻豆国产97在线 | 欧洲 | 亚洲综合伊人久久大杳蕉 | 午夜成人1000部免费视频 | 性生交大片免费看l | 红桃av一区二区三区在线无码av | 国产一区二区三区精品视频 | 中文字幕乱码亚洲无线三区 | 色欲久久久天天天综合网精品 | 国产精品福利视频导航 | 精品一区二区三区波多野结衣 | 久久人妻内射无码一区三区 | 色五月丁香五月综合五月 | 色偷偷人人澡人人爽人人模 | 亚洲第一网站男人都懂 | 国内丰满熟女出轨videos | 色欲av亚洲一区无码少妇 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲色大成网站www国产 | 暴力强奷在线播放无码 | 国产精品99爱免费视频 | 国产精品手机免费 | 国产精品久久国产三级国 | 女人被男人爽到呻吟的视频 | 欧美老熟妇乱xxxxx | 精品国产精品久久一区免费式 | 国产精品香蕉在线观看 | 欧美丰满熟妇xxxx | 欧美xxxx黑人又粗又长 | 日本丰满护士爆乳xxxx | 老子影院午夜精品无码 | 亚洲人成人无码网www国产 | 亚洲色www成人永久网址 | 极品嫩模高潮叫床 | 亚洲 日韩 欧美 成人 在线观看 | 人妻少妇精品视频专区 | 久久午夜无码鲁丝片午夜精品 | 亚洲最大成人网站 | 亚洲大尺度无码无码专区 | 97精品人妻一区二区三区香蕉 | 国产成人精品视频ⅴa片软件竹菊 | 99久久人妻精品免费二区 | 性色欲情网站iwww九文堂 | 国产三级久久久精品麻豆三级 | 国产精品久久久久久久影院 | 又色又爽又黄的美女裸体网站 | 亚洲综合无码久久精品综合 | 丰腴饱满的极品熟妇 | 牲交欧美兽交欧美 | 亚洲人成网站在线播放942 | 波多野结衣一区二区三区av免费 | 2020久久超碰国产精品最新 | 99在线 | 亚洲 | 欧美性生交xxxxx久久久 | 久久久无码中文字幕久... | 日本丰满护士爆乳xxxx | 国产97色在线 | 免 | 亚洲の无码国产の无码影院 | 欧美性黑人极品hd | 国产精品亚洲专区无码不卡 | 欧美人与牲动交xxxx | 噜噜噜亚洲色成人网站 | 黑人玩弄人妻中文在线 | 中国女人内谢69xxxxxa片 | 欧美日韩在线亚洲综合国产人 | 男人的天堂2018无码 | 熟妇激情内射com | 一本久久a久久精品vr综合 | 久青草影院在线观看国产 | 爱做久久久久久 | 在线观看国产一区二区三区 | 国产真实乱对白精彩久久 | 日本精品人妻无码免费大全 | 国产明星裸体无码xxxx视频 | 久久精品无码一区二区三区 | 国内丰满熟女出轨videos | 日韩亚洲欧美中文高清在线 | 国产免费久久精品国产传媒 | 丝袜人妻一区二区三区 | 亚洲一区二区观看播放 | 精品欧洲av无码一区二区三区 | 欧美精品国产综合久久 | 蜜桃视频插满18在线观看 | 国产后入清纯学生妹 | 丰满肥臀大屁股熟妇激情视频 | 国产后入清纯学生妹 | 欧美zoozzooz性欧美 | 欧美成人午夜精品久久久 | 久久综合九色综合欧美狠狠 | 国产va免费精品观看 | 中文字幕无码av激情不卡 | yw尤物av无码国产在线观看 | 成年美女黄网站色大免费全看 | 在线亚洲高清揄拍自拍一品区 | 色综合视频一区二区三区 | 亚洲综合另类小说色区 | 亚洲人交乣女bbw | 精品偷拍一区二区三区在线看 | 免费无码av一区二区 | 国产真实乱对白精彩久久 | 午夜福利试看120秒体验区 | 欧美国产亚洲日韩在线二区 | 亚洲欧美色中文字幕在线 | 丝袜 中出 制服 人妻 美腿 | 国产疯狂伦交大片 | 国产性生大片免费观看性 | 又紧又大又爽精品一区二区 | 欧美熟妇另类久久久久久不卡 | 狠狠色欧美亚洲狠狠色www | 男女超爽视频免费播放 | 国产另类ts人妖一区二区 | 无码国产乱人伦偷精品视频 | 精品亚洲成av人在线观看 | 国产av一区二区三区最新精品 | 疯狂三人交性欧美 | 欧美肥老太牲交大战 | 爱做久久久久久 | 欧美亚洲国产一区二区三区 | 日日摸夜夜摸狠狠摸婷婷 | 久久综合网欧美色妞网 | 色综合久久中文娱乐网 | 久久99精品久久久久久动态图 | 精品一区二区三区无码免费视频 | 成在人线av无码免观看麻豆 | 夜精品a片一区二区三区无码白浆 | 国产精品美女久久久网av | 呦交小u女精品视频 | 无码av最新清无码专区吞精 | 少妇太爽了在线观看 | 亚洲综合无码一区二区三区 | 日本一区二区三区免费播放 | 黑森林福利视频导航 | 好爽又高潮了毛片免费下载 | 国产偷国产偷精品高清尤物 | 久久97精品久久久久久久不卡 | 99久久久无码国产aaa精品 | 97久久精品无码一区二区 | 日日麻批免费40分钟无码 | 国内少妇偷人精品视频 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 5858s亚洲色大成网站www | 久久综合久久自在自线精品自 | 久久国内精品自在自线 | 少妇一晚三次一区二区三区 | 四虎4hu永久免费 | 国产人妻久久精品二区三区老狼 | 欧美变态另类xxxx | 国产超级va在线观看视频 | 国产一区二区三区日韩精品 | 一个人看的视频www在线 | 成人试看120秒体验区 | 97无码免费人妻超级碰碰夜夜 | 日日鲁鲁鲁夜夜爽爽狠狠 | 久久97精品久久久久久久不卡 | 国产美女精品一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 中文字幕+乱码+中文字幕一区 | 日产精品高潮呻吟av久久 | 久久亚洲精品中文字幕无男同 | 久久精品成人欧美大片 | 国产绳艺sm调教室论坛 | 夜精品a片一区二区三区无码白浆 | 大乳丰满人妻中文字幕日本 | 性欧美videos高清精品 | 国产成人精品无码播放 | 日韩在线不卡免费视频一区 | 无码福利日韩神码福利片 | 人妻有码中文字幕在线 | 美女毛片一区二区三区四区 | 无码人妻黑人中文字幕 | 色综合久久中文娱乐网 | 精品无码一区二区三区的天堂 | 免费无码午夜福利片69 | 亚洲午夜久久久影院 | 日本大乳高潮视频在线观看 | 在线观看国产一区二区三区 | 国产凸凹视频一区二区 | 夜先锋av资源网站 | 国产亚洲欧美在线专区 | 亚洲中文字幕无码一久久区 | 综合人妻久久一区二区精品 | 免费无码的av片在线观看 | 国产va免费精品观看 | 波多野结衣一区二区三区av免费 | 日本护士毛茸茸高潮 | 亚洲精品综合一区二区三区在线 | 亚洲综合另类小说色区 | 99久久久无码国产精品免费 | 日韩人妻少妇一区二区三区 | 丰满妇女强制高潮18xxxx | 国产国语老龄妇女a片 | 影音先锋中文字幕无码 | 日日躁夜夜躁狠狠躁 | 国产午夜无码精品免费看 | 久久97精品久久久久久久不卡 | 澳门永久av免费网站 | 久久精品一区二区三区四区 | 国产内射爽爽大片视频社区在线 | 性欧美疯狂xxxxbbbb | 亚洲一区二区三区无码久久 | 初尝人妻少妇中文字幕 | 三级4级全黄60分钟 | 成熟人妻av无码专区 | 欧美日韩人成综合在线播放 | 久久久久久av无码免费看大片 | 人妻无码久久精品人妻 | 在教室伦流澡到高潮hnp视频 | 午夜成人1000部免费视频 | 亚洲啪av永久无码精品放毛片 | 亚洲国产精品成人久久蜜臀 | 无码av最新清无码专区吞精 | a片在线免费观看 | 国产精品久久精品三级 | 亚洲色无码一区二区三区 | 久久99精品国产麻豆 | 成熟妇人a片免费看网站 | 亚洲一区二区三区在线观看网站 | 丰满肥臀大屁股熟妇激情视频 | 丝袜足控一区二区三区 | 日韩亚洲欧美中文高清在线 | 亚洲区小说区激情区图片区 | 国产色视频一区二区三区 | 国产三级精品三级男人的天堂 | 国产乱人伦偷精品视频 | 日韩精品无码一本二本三本色 | 国产成人精品久久亚洲高清不卡 | 麻豆精品国产精华精华液好用吗 | 少妇人妻偷人精品无码视频 | 麻豆av传媒蜜桃天美传媒 | 高潮毛片无遮挡高清免费视频 | 国产成人亚洲综合无码 | 亚洲欧美日韩国产精品一区二区 | 国产精品久久久久久久9999 | 亚洲s码欧洲m码国产av | 在线观看欧美一区二区三区 | 日本精品少妇一区二区三区 | 久精品国产欧美亚洲色aⅴ大片 | 老熟妇仑乱视频一区二区 | 中文字幕日韩精品一区二区三区 | 99久久精品无码一区二区毛片 | 中文字幕日产无线码一区 | av无码电影一区二区三区 | 又色又爽又黄的美女裸体网站 | 天堂久久天堂av色综合 | 国产精品久久久午夜夜伦鲁鲁 | 红桃av一区二区三区在线无码av | 日本乱人伦片中文三区 | 久久综合香蕉国产蜜臀av | av无码久久久久不卡免费网站 | 欧美肥老太牲交大战 | 99久久人妻精品免费二区 | 日韩av激情在线观看 | 欧洲熟妇精品视频 | 国产午夜手机精彩视频 | 亚洲一区二区三区国产精华液 | 国产无av码在线观看 | 国产激情无码一区二区 | 夜精品a片一区二区三区无码白浆 | 大屁股大乳丰满人妻 | 日本丰满熟妇videos | 性做久久久久久久久 | 久久久久久av无码免费看大片 | 国产精品无码永久免费888 | 亚洲精品综合一区二区三区在线 | 亚洲国产高清在线观看视频 | 国产人妻大战黑人第1集 | 亚洲精品一区二区三区在线 | 精品久久综合1区2区3区激情 | 日本大乳高潮视频在线观看 | 无码纯肉视频在线观看 | 国产成人综合色在线观看网站 | 精品久久久无码人妻字幂 | 亚洲色www成人永久网址 | 女人和拘做爰正片视频 | 青草青草久热国产精品 | 丰满人妻一区二区三区免费视频 | 高潮毛片无遮挡高清免费 | 中文久久乱码一区二区 | 狂野欧美性猛交免费视频 | 精品国产成人一区二区三区 | 久久久中文字幕日本无吗 | 一个人看的视频www在线 | 无码国产激情在线观看 | 领导边摸边吃奶边做爽在线观看 | 国产人妻久久精品二区三区老狼 | 中文毛片无遮挡高清免费 | 亚洲色大成网站www国产 | 蜜臀av在线播放 久久综合激激的五月天 | 东京热一精品无码av | 樱花草在线播放免费中文 | 色综合久久久无码网中文 | 久久亚洲日韩精品一区二区三区 | 亚洲最大成人网站 | 午夜无码人妻av大片色欲 | 无码精品国产va在线观看dvd | 久激情内射婷内射蜜桃人妖 | 日韩亚洲欧美中文高清在线 | 亚洲午夜无码久久 | 红桃av一区二区三区在线无码av | 少妇一晚三次一区二区三区 | 国产亚洲欧美在线专区 | 少妇被粗大的猛进出69影院 | 少妇人妻av毛片在线看 | 国产精品久久久久9999小说 | 中文字幕久久久久人妻 | 欧美黑人巨大xxxxx | 久久伊人色av天堂九九小黄鸭 | 久久午夜无码鲁丝片午夜精品 | 国产av人人夜夜澡人人爽麻豆 | 丰满人妻被黑人猛烈进入 | 图片区 小说区 区 亚洲五月 | 国产精品香蕉在线观看 | 麻豆人妻少妇精品无码专区 | 国产口爆吞精在线视频 | 国产亚洲精品精品国产亚洲综合 | 国产精品高潮呻吟av久久4虎 | 99er热精品视频 | 亚欧洲精品在线视频免费观看 | 国产va免费精品观看 | 熟妇人妻无乱码中文字幕 | 亚洲成a人片在线观看无码3d | 中文字幕中文有码在线 | 成人精品视频一区二区 | 欧洲熟妇精品视频 | 久久精品国产大片免费观看 | 影音先锋中文字幕无码 | 国语自产偷拍精品视频偷 | 久久婷婷五月综合色国产香蕉 | 成人免费视频视频在线观看 免费 | 国产成人精品久久亚洲高清不卡 | 少妇无套内谢久久久久 | 欧美喷潮久久久xxxxx | 四虎国产精品一区二区 | 国产激情无码一区二区 | 亚无码乱人伦一区二区 | 亚洲乱码中文字幕在线 | 亚洲综合精品香蕉久久网 | 久久国产自偷自偷免费一区调 | 亚洲国产欧美日韩精品一区二区三区 | 欧美大屁股xxxxhd黑色 | 成年美女黄网站色大免费全看 | 精品偷自拍另类在线观看 | 国产精品无套呻吟在线 | 少妇无套内谢久久久久 | 欧美日韩综合一区二区三区 | 精品人妻av区 | 5858s亚洲色大成网站www | 无码免费一区二区三区 | 人妻插b视频一区二区三区 | 男人扒开女人内裤强吻桶进去 | 国产午夜手机精彩视频 | 一本久久a久久精品亚洲 | 国产精品久久久一区二区三区 | 国产精品自产拍在线观看 | 漂亮人妻洗澡被公强 日日躁 | 国产精品福利视频导航 | 熟妇激情内射com | 成人一在线视频日韩国产 | 天堂а√在线地址中文在线 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品第一国产精品 | a国产一区二区免费入口 | 人妻体内射精一区二区三四 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产精品亚洲а∨无码播放麻豆 | 蜜臀av无码人妻精品 | 亚洲最大成人网站 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲色www成人永久网址 | 少妇性l交大片 | 一二三四在线观看免费视频 | 中文字幕av日韩精品一区二区 | 无码毛片视频一区二区本码 | 亚洲乱码日产精品bd | 国产亚洲视频中文字幕97精品 | 亚洲综合无码一区二区三区 | 中文字幕人妻无码一夲道 | 老司机亚洲精品影院无码 | 久久久久久av无码免费看大片 | 国产办公室秘书无码精品99 | 日韩精品久久久肉伦网站 | 老子影院午夜精品无码 | 97精品国产97久久久久久免费 | 欧美 丝袜 自拍 制服 另类 | 久久精品国产日本波多野结衣 | 亚洲阿v天堂在线 | 无码国产乱人伦偷精品视频 | 精品久久久久久亚洲精品 | 久久久亚洲欧洲日产国码αv | 日韩精品无码一本二本三本色 | 国产精品18久久久久久麻辣 | 国产偷自视频区视频 | 成人亚洲精品久久久久软件 | 精品水蜜桃久久久久久久 | 亚洲国产精品久久人人爱 | 亚洲国产精品久久久久久 | aⅴ亚洲 日韩 色 图网站 播放 | 国产超级va在线观看视频 | 亚洲精品久久久久久一区二区 | 大地资源中文第3页 | 欧美国产亚洲日韩在线二区 | 国产xxx69麻豆国语对白 | 久久熟妇人妻午夜寂寞影院 | 久久久久国色av免费观看性色 | 人妻少妇精品久久 | 国产亚洲日韩欧美另类第八页 | 国产精品久久久av久久久 | 人人妻人人澡人人爽人人精品 | 欧美猛少妇色xxxxx | 中文字幕人妻丝袜二区 | 黄网在线观看免费网站 | 国产精品-区区久久久狼 | 国产精品亚洲一区二区三区喷水 | 午夜精品一区二区三区在线观看 | 色综合久久88色综合天天 | 伊人久久大香线蕉午夜 | 午夜精品一区二区三区在线观看 | 国产精品亚洲一区二区三区喷水 | 国产精品99久久精品爆乳 | av无码不卡在线观看免费 | 免费人成网站视频在线观看 | av无码不卡在线观看免费 | 双乳奶水饱满少妇呻吟 | 2020久久超碰国产精品最新 | 狠狠色欧美亚洲狠狠色www | 国产绳艺sm调教室论坛 | 国产精品高潮呻吟av久久 | 无码av岛国片在线播放 | 婷婷丁香五月天综合东京热 | 欧美自拍另类欧美综合图片区 | 久久人人爽人人爽人人片ⅴ | 女人被男人爽到呻吟的视频 | 狂野欧美激情性xxxx | 四虎影视成人永久免费观看视频 | 国产成人一区二区三区在线观看 | 国产精品亚洲а∨无码播放麻豆 | 美女扒开屁股让男人桶 | 又粗又大又硬又长又爽 | 欧美黑人性暴力猛交喷水 | 成人av无码一区二区三区 | 一本色道久久综合亚洲精品不卡 | 久久精品人人做人人综合试看 | 国产亲子乱弄免费视频 | a片在线免费观看 | 国产精品爱久久久久久久 | 欧美精品在线观看 | 东京无码熟妇人妻av在线网址 | 精品成在人线av无码免费看 | 中文精品久久久久人妻不卡 | 强奷人妻日本中文字幕 | 国精品人妻无码一区二区三区蜜柚 | аⅴ资源天堂资源库在线 | 天天躁日日躁狠狠躁免费麻豆 | 国产亚洲美女精品久久久2020 | 特黄特色大片免费播放器图片 | a片免费视频在线观看 | 国产亚av手机在线观看 | 亚洲一区二区三区在线观看网站 | 久久久久久亚洲精品a片成人 | 性欧美疯狂xxxxbbbb | 丰满护士巨好爽好大乳 | 伊人久久大香线焦av综合影院 | 丰满少妇女裸体bbw | 又大又硬又黄的免费视频 | 久久午夜无码鲁丝片秋霞 | 久久视频在线观看精品 | 国产香蕉尹人视频在线 | 久久国产精品萌白酱免费 | 国内精品人妻无码久久久影院蜜桃 | 亚洲中文无码av永久不收费 | 亚洲国产一区二区三区在线观看 | 国产成人亚洲综合无码 | 久久综合狠狠综合久久综合88 | 国产国产精品人在线视 | 国产免费久久久久久无码 | 成人亚洲精品久久久久 | 久久国内精品自在自线 | 国产卡一卡二卡三 | 国产av久久久久精东av | 亚洲人成影院在线无码按摩店 | 国产亚洲人成a在线v网站 | 欧美性黑人极品hd | 久久久久久久久888 | 无码免费一区二区三区 | 精品日本一区二区三区在线观看 | 久久久久人妻一区精品色欧美 | 精品一区二区不卡无码av | 丰满人妻被黑人猛烈进入 | 国产乱人无码伦av在线a | 国产激情综合五月久久 | 丁香花在线影院观看在线播放 | 亚洲精品国产a久久久久久 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 两性色午夜视频免费播放 | 人妻与老人中文字幕 | 装睡被陌生人摸出水好爽 | 大肉大捧一进一出好爽视频 | 牲欲强的熟妇农村老妇女 | 久久综合狠狠综合久久综合88 | 西西人体www44rt大胆高清 | 亚洲综合另类小说色区 | 日本成熟视频免费视频 | 亚洲精品久久久久久一区二区 | 中文字幕乱码人妻无码久久 | 中文字幕乱码人妻无码久久 | 国产成人亚洲综合无码 | 国产人妻精品一区二区三区 | 又黄又爽又色的视频 | 国产亚洲精品精品国产亚洲综合 | 性色欲网站人妻丰满中文久久不卡 | 亚洲成色在线综合网站 | 午夜理论片yy44880影院 | 免费无码肉片在线观看 | 大肉大捧一进一出好爽视频 | 日韩欧美中文字幕公布 | 国内精品一区二区三区不卡 | 欧美zoozzooz性欧美 | 国产热a欧美热a在线视频 | 久久综合狠狠综合久久综合88 | 午夜理论片yy44880影院 | 国产后入清纯学生妹 | 亚洲另类伦春色综合小说 | 成人影院yy111111在线观看 | 国产精品久久久久7777 | 久久精品国产亚洲精品 | 国产精品久久国产三级国 | 国产在线aaa片一区二区99 | 永久黄网站色视频免费直播 | 久久综合九色综合欧美狠狠 | 久久久久久久久蜜桃 | 国产无遮挡又黄又爽免费视频 | 亚洲欧洲日本综合aⅴ在线 | 久久www免费人成人片 | 女人高潮内射99精品 | 亚洲色大成网站www | 国产小呦泬泬99精品 | 欧美丰满少妇xxxx性 | а√天堂www在线天堂小说 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲第一无码av无码专区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 成人免费视频视频在线观看 免费 | 日韩精品一区二区av在线 | 欧美喷潮久久久xxxxx | 久9re热视频这里只有精品 | 中文字幕无线码免费人妻 | 97精品人妻一区二区三区香蕉 | 3d动漫精品啪啪一区二区中 | 东京热无码av男人的天堂 | 樱花草在线播放免费中文 | 亚洲中文字幕无码中字 | 窝窝午夜理论片影院 | 人人妻人人澡人人爽人人精品 | 亚洲欧洲无卡二区视頻 | 国产精品人妻一区二区三区四 | 老熟妇乱子伦牲交视频 | 成人免费视频视频在线观看 免费 | 成人无码精品1区2区3区免费看 | 亚洲欧美日韩国产精品一区二区 | 色综合久久久无码网中文 | 国产成人无码av在线影院 | 久久久久久国产精品无码下载 | √天堂资源地址中文在线 | 性生交片免费无码看人 | 中文字幕人妻丝袜二区 | 亚洲色www成人永久网址 | 久久久国产精品无码免费专区 | 国产亚洲精品久久久久久久 | 人人澡人摸人人添 | 大地资源中文第3页 | 亚洲人成网站在线播放942 | 欧美肥老太牲交大战 | 老子影院午夜精品无码 | 人妻少妇精品视频专区 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久综合香蕉国产蜜臀av | 色综合视频一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 东京热无码av男人的天堂 | 国产肉丝袜在线观看 | 色欲久久久天天天综合网精品 | 激情内射日本一区二区三区 | 精品无人国产偷自产在线 | 久久精品99久久香蕉国产色戒 | 亚洲精品一区二区三区婷婷月 | 国产精品自产拍在线观看 | 天天摸天天碰天天添 | 人妻少妇被猛烈进入中文字幕 | 亚洲国产精品无码一区二区三区 | 未满小14洗澡无码视频网站 | 久久精品女人的天堂av | 久久99精品国产麻豆蜜芽 | 99精品无人区乱码1区2区3区 | 一本久久a久久精品vr综合 | 亚洲精品一区二区三区大桥未久 | 国产明星裸体无码xxxx视频 | 国产激情综合五月久久 | 欧美老熟妇乱xxxxx | 人人爽人人澡人人高潮 | 久久99热只有频精品8 | 欧美国产亚洲日韩在线二区 | 亚洲中文无码av永久不收费 | 岛国片人妻三上悠亚 | 欧美性猛交xxxx富婆 | 久久久中文久久久无码 | 国产一区二区三区四区五区加勒比 | 久久97精品久久久久久久不卡 | 亚洲 激情 小说 另类 欧美 | 国产精品亚洲综合色区韩国 | 极品嫩模高潮叫床 | 亚洲午夜福利在线观看 | 国产精品无码一区二区三区不卡 | 精品国偷自产在线 | 丰满少妇高潮惨叫视频 | 51国偷自产一区二区三区 | 99久久久无码国产aaa精品 | 18黄暴禁片在线观看 | 精品一区二区三区无码免费视频 | 99久久人妻精品免费一区 | 国产香蕉尹人综合在线观看 | 亚洲综合无码一区二区三区 | 国产精品久久久久9999小说 | 又黄又爽又色的视频 | 精品无码成人片一区二区98 | 中文无码成人免费视频在线观看 | 国产精品久久福利网站 | 曰韩少妇内射免费播放 | 熟女俱乐部五十路六十路av | 亚洲精品欧美二区三区中文字幕 | 欧美日韩视频无码一区二区三 | 亚洲精品中文字幕乱码 | 久久综合九色综合欧美狠狠 | 久久精品人人做人人综合试看 | 亚洲娇小与黑人巨大交 | 成人亚洲精品久久久久 | 男人的天堂2018无码 | 又黄又爽又色的视频 | 最近中文2019字幕第二页 | 国产电影无码午夜在线播放 | 天天综合网天天综合色 | 日本又色又爽又黄的a片18禁 | 国产精品亚洲а∨无码播放麻豆 | 欧美日本精品一区二区三区 | 无码国内精品人妻少妇 | 国产成人综合色在线观看网站 | av香港经典三级级 在线 | 国产真人无遮挡作爱免费视频 | 欧美性猛交xxxx富婆 | 久久亚洲中文字幕无码 | 国产三级久久久精品麻豆三级 | 国内精品一区二区三区不卡 | 波多野结衣乳巨码无在线观看 | 亚洲区小说区激情区图片区 | 女人被爽到呻吟gif动态图视看 | 亚洲阿v天堂在线 | 国产色精品久久人妻 | 欧美成人午夜精品久久久 | 两性色午夜视频免费播放 | 成 人 网 站国产免费观看 | 欧美激情内射喷水高潮 | 日本欧美一区二区三区乱码 | 18禁止看的免费污网站 | 国产熟妇另类久久久久 | 亚洲日韩中文字幕在线播放 | 亚洲精品国产a久久久久久 | 波多野结衣av在线观看 | 久久视频在线观看精品 | 欧美日韩人成综合在线播放 | 国产精品沙发午睡系列 | 精品无码一区二区三区爱欲 | 免费乱码人妻系列无码专区 | 欧美日韩人成综合在线播放 | 国产真实乱对白精彩久久 | 国产精品亚洲五月天高清 | 偷窥村妇洗澡毛毛多 | 亚洲精品无码国产 | 内射后入在线观看一区 | 亚洲欧洲无卡二区视頻 | 丰满少妇人妻久久久久久 | 中文字幕精品av一区二区五区 | √天堂资源地址中文在线 | 亚洲日韩一区二区三区 | 午夜无码人妻av大片色欲 | 国产精品久久久久久久9999 | 色诱久久久久综合网ywww | 国产区女主播在线观看 | 精品国产一区二区三区av 性色 | 久久久久成人片免费观看蜜芽 | 日日橹狠狠爱欧美视频 | 色妞www精品免费视频 | 国产精品沙发午睡系列 | 51国偷自产一区二区三区 | 无遮挡啪啪摇乳动态图 | 性色欲网站人妻丰满中文久久不卡 | 精品成人av一区二区三区 | 国产成人久久精品流白浆 | 国产乱人伦偷精品视频 | 亚洲の无码国产の无码步美 | 国产精品人妻一区二区三区四 | 欧美精品免费观看二区 | 国产人妻精品一区二区三区 | 亚洲天堂2017无码 | 亚洲精品国产第一综合99久久 | 波多野结衣乳巨码无在线观看 | 亚洲日韩av片在线观看 | 久久综合香蕉国产蜜臀av | 久久成人a毛片免费观看网站 | 国产尤物精品视频 | 欧美freesex黑人又粗又大 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 粗大的内捧猛烈进出视频 | 亚洲国产日韩a在线播放 | 色婷婷久久一区二区三区麻豆 | 精品人妻av区 | 国产精品99爱免费视频 | 精品久久久中文字幕人妻 | 亚洲码国产精品高潮在线 | 欧美肥老太牲交大战 | 亚洲人成网站免费播放 | 无码播放一区二区三区 | 夜夜躁日日躁狠狠久久av | 丰满少妇弄高潮了www | 少妇无码av无码专区在线观看 | 中文字幕乱妇无码av在线 | 久久久久国色av免费观看性色 | 亚洲精品午夜国产va久久成人 | 18禁止看的免费污网站 | 国产凸凹视频一区二区 | 乱人伦中文视频在线观看 | 国产精品igao视频网 | 亚洲日韩中文字幕在线播放 | 成人欧美一区二区三区黑人免费 | 国产精品久久国产三级国 | √天堂资源地址中文在线 | 国产口爆吞精在线视频 | 日韩人妻无码一区二区三区久久99 | 国产精品嫩草久久久久 | 欧美国产日韩亚洲中文 | 精品无码成人片一区二区98 | 国产精品无码成人午夜电影 | 国产69精品久久久久app下载 | 中文精品久久久久人妻不卡 | 国产成人精品久久亚洲高清不卡 | 免费乱码人妻系列无码专区 | 麻豆蜜桃av蜜臀av色欲av | 激情内射日本一区二区三区 | 亚洲欧美精品伊人久久 | 欧美精品免费观看二区 | 日韩无套无码精品 | 国产片av国语在线观看 | 97久久精品无码一区二区 | 中文毛片无遮挡高清免费 | 国产亚洲精品久久久ai换 | 亚洲人成网站在线播放942 | 波多野结衣av一区二区全免费观看 | 乱人伦人妻中文字幕无码 | 美女毛片一区二区三区四区 | 超碰97人人做人人爱少妇 | 国产免费久久久久久无码 | 欧美喷潮久久久xxxxx | 18无码粉嫩小泬无套在线观看 | 婷婷丁香六月激情综合啪 | 伦伦影院午夜理论片 | 日韩人妻少妇一区二区三区 | 国产人妻精品一区二区三区不卡 | 久久精品人人做人人综合试看 | 国产精品内射视频免费 | a在线观看免费网站大全 | 精品久久久久香蕉网 | 丰满岳乱妇在线观看中字无码 | 波多野结衣av在线观看 | 欧美亚洲国产一区二区三区 | 久久人妻内射无码一区三区 | 国产亚洲精品久久久久久国模美 | 一二三四社区在线中文视频 | 午夜熟女插插xx免费视频 | 国产亚洲日韩欧美另类第八页 | 国产绳艺sm调教室论坛 | 亚洲精品国产精品乱码不卡 | 国产精品无套呻吟在线 | 久久久久99精品国产片 | 少妇人妻av毛片在线看 | 日韩少妇内射免费播放 | 狠狠cao日日穞夜夜穞av | 岛国片人妻三上悠亚 | 中国女人内谢69xxxxxa片 | 性史性农村dvd毛片 | 久久无码专区国产精品s | 日韩精品无码一区二区中文字幕 | 国产成人久久精品流白浆 | 国产成人综合在线女婷五月99播放 | 色欲久久久天天天综合网精品 | 清纯唯美经典一区二区 | 亚洲国产欧美日韩精品一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 强奷人妻日本中文字幕 | 亚洲精品午夜无码电影网 | 奇米影视7777久久精品人人爽 | 国产婷婷色一区二区三区在线 | 日本免费一区二区三区最新 | 精品成人av一区二区三区 | 国产亚洲日韩欧美另类第八页 | 人人妻人人澡人人爽人人精品 | 久久精品人妻少妇一区二区三区 | 久久久成人毛片无码 | 国产又爽又黄又刺激的视频 | 99久久无码一区人妻 | 丰满少妇弄高潮了www | 国产激情一区二区三区 | 日本高清一区免费中文视频 | 国产三级久久久精品麻豆三级 | 久久久国产一区二区三区 | 日韩欧美中文字幕在线三区 | 麻豆蜜桃av蜜臀av色欲av | 午夜成人1000部免费视频 | 香蕉久久久久久av成人 | 狠狠cao日日穞夜夜穞av | 欧美xxxx黑人又粗又长 | 午夜福利试看120秒体验区 | 国产av一区二区精品久久凹凸 | 亚洲国产精品久久久天堂 | 色一情一乱一伦一区二区三欧美 | 国产肉丝袜在线观看 | 国产农村妇女高潮大叫 | 97精品人妻一区二区三区香蕉 | 亚洲色偷偷偷综合网 | 十八禁视频网站在线观看 | 久久久www成人免费毛片 | 国产无套粉嫩白浆在线 | 精品久久久久久人妻无码中文字幕 | 欧美日韩久久久精品a片 | 四虎国产精品一区二区 | 午夜免费福利小电影 | 亚洲中文字幕无码中字 | 亚洲欧美综合区丁香五月小说 | 97se亚洲精品一区 | 人妻少妇被猛烈进入中文字幕 | 久久99热只有频精品8 | 国产免费观看黄av片 | 久在线观看福利视频 | 网友自拍区视频精品 | 亚洲成a人片在线观看日本 | 亚洲综合色区中文字幕 | 国产成人无码午夜视频在线观看 | 亚洲综合久久一区二区 | 四虎影视成人永久免费观看视频 | 丝袜足控一区二区三区 | 老司机亚洲精品影院 | 国产成人无码一二三区视频 | 特级做a爰片毛片免费69 | 强辱丰满人妻hd中文字幕 | 日韩av无码一区二区三区不卡 | 亚洲精品一区二区三区在线 | 日本www一道久久久免费榴莲 | 日日麻批免费40分钟无码 | 亚洲成色在线综合网站 | 国产精品爱久久久久久久 | 领导边摸边吃奶边做爽在线观看 | 久久国产劲爆∧v内射 | 99久久久无码国产精品免费 | 人妻插b视频一区二区三区 | 午夜成人1000部免费视频 | 最近中文2019字幕第二页 | 精品久久久中文字幕人妻 | 国产精品无码永久免费888 | 亚洲日韩乱码中文无码蜜桃臀网站 | 中文字幕无码热在线视频 | 亚洲国产午夜精品理论片 | 黄网在线观看免费网站 | 亚洲 日韩 欧美 成人 在线观看 | 国产另类ts人妖一区二区 | 色窝窝无码一区二区三区色欲 | 国产精品亚洲五月天高清 | 曰韩无码二三区中文字幕 | 女人和拘做爰正片视频 | 免费看少妇作爱视频 | 亚洲中文字幕在线无码一区二区 | 日韩视频 中文字幕 视频一区 | 乱中年女人伦av三区 | 免费无码一区二区三区蜜桃大 | 在线 国产 欧美 亚洲 天堂 | 精品久久久久久亚洲精品 | 亚洲一区二区三区在线观看网站 | 亚洲欧美日韩综合久久久 | 日韩视频 中文字幕 视频一区 | 99riav国产精品视频 | 欧美性猛交内射兽交老熟妇 | 免费视频欧美无人区码 | 亚洲春色在线视频 | 99久久久国产精品无码免费 | 久久精品人人做人人综合试看 | 亚洲国产成人a精品不卡在线 | 福利一区二区三区视频在线观看 | 丰满诱人的人妻3 | 激情国产av做激情国产爱 | 亚洲精品成人av在线 | 国产亚洲美女精品久久久2020 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产在线无码精品电影网 | 一本久道久久综合狠狠爱 | 给我免费的视频在线观看 | 亚洲欧美日韩成人高清在线一区 | 国产精品爱久久久久久久 | 中文字幕+乱码+中文字幕一区 | 精品乱子伦一区二区三区 | 日本xxxx色视频在线观看免费 | 夜先锋av资源网站 | 动漫av网站免费观看 | 久久综合狠狠综合久久综合88 | 欧美激情内射喷水高潮 | 国产艳妇av在线观看果冻传媒 | 性做久久久久久久久 | 少妇性l交大片 | 亚洲精品久久久久久久久久久 | 国产超级va在线观看视频 | 久久综合九色综合97网 | 狂野欧美性猛xxxx乱大交 | 又紧又大又爽精品一区二区 | 午夜精品久久久内射近拍高清 | 性生交片免费无码看人 | 人人妻人人藻人人爽欧美一区 | 久久久久久国产精品无码下载 | 4hu四虎永久在线观看 | 色综合天天综合狠狠爱 | 亚洲国产精品毛片av不卡在线 | 久久精品国产大片免费观看 | 久久精品成人欧美大片 | 亚洲精品欧美二区三区中文字幕 | 丰满人妻精品国产99aⅴ | 国产免费久久精品国产传媒 | 国产内射老熟女aaaa | 欧美日韩视频无码一区二区三 | 一本大道伊人av久久综合 | 少妇无码吹潮 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 精品国产一区二区三区av 性色 | 欧美阿v高清资源不卡在线播放 | 国产又爽又黄又刺激的视频 | 天堂久久天堂av色综合 | 麻豆果冻传媒2021精品传媒一区下载 | 97se亚洲精品一区 | 欧美日韩一区二区综合 | 日本一区二区三区免费播放 | 一本久久伊人热热精品中文字幕 | 青草青草久热国产精品 | 蜜桃视频插满18在线观看 | 国产激情艳情在线看视频 | 67194成是人免费无码 | 18黄暴禁片在线观看 | 国产日产欧产精品精品app | 国产极品美女高潮无套在线观看 | 东京无码熟妇人妻av在线网址 | 日日摸夜夜摸狠狠摸婷婷 | 少妇性l交大片欧洲热妇乱xxx | 麻豆成人精品国产免费 | 国产艳妇av在线观看果冻传媒 | 中文字幕无码热在线视频 | 久久综合狠狠综合久久综合88 | 1000部夫妻午夜免费 | 国产亚洲欧美日韩亚洲中文色 | 真人与拘做受免费视频一 | 中文精品久久久久人妻不卡 | 四虎影视成人永久免费观看视频 | 思思久久99热只有频精品66 | 亚洲日本va中文字幕 | 国产成人无码一二三区视频 | 欧美日本免费一区二区三区 | 亚洲成a人一区二区三区 | 国产三级久久久精品麻豆三级 | 久久天天躁夜夜躁狠狠 | 一本久道久久综合婷婷五月 | 人妻少妇被猛烈进入中文字幕 | 亚洲乱码中文字幕在线 | 午夜无码区在线观看 | 性色av无码免费一区二区三区 | 成年美女黄网站色大免费全看 | 丝袜美腿亚洲一区二区 | 国产成人精品视频ⅴa片软件竹菊 | 久久国产精品精品国产色婷婷 | 国产深夜福利视频在线 | 欧美人与物videos另类 | 又紧又大又爽精品一区二区 | 无码一区二区三区在线观看 | 日本护士毛茸茸高潮 | 国产97人人超碰caoprom | 欧美成人免费全部网站 | 国产热a欧美热a在线视频 | 丝袜美腿亚洲一区二区 | 无码一区二区三区在线观看 | 成人精品一区二区三区中文字幕 | 亚洲综合无码一区二区三区 | 色婷婷av一区二区三区之红樱桃 | 一本久道久久综合婷婷五月 | 日日天日日夜日日摸 | 色婷婷久久一区二区三区麻豆 | 亲嘴扒胸摸屁股激烈网站 | 精品久久久久久人妻无码中文字幕 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产农村妇女高潮大叫 | 无码中文字幕色专区 | 国产精品亚洲五月天高清 | 国产精品内射视频免费 | 国产特级毛片aaaaaa高潮流水 | 人人妻人人澡人人爽人人精品 | 高清无码午夜福利视频 | 少妇被粗大的猛进出69影院 | 久久精品中文闷骚内射 | 综合激情五月综合激情五月激情1 | 久久精品丝袜高跟鞋 | 久久综合九色综合欧美狠狠 | 玩弄中年熟妇正在播放 | 狂野欧美激情性xxxx | 老熟女重囗味hdxx69 | 无码人妻黑人中文字幕 | 国产午夜福利亚洲第一 | 黑人大群体交免费视频 | 色五月五月丁香亚洲综合网 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 真人与拘做受免费视频一 | 国产午夜亚洲精品不卡下载 | 窝窝午夜理论片影院 | 小鲜肉自慰网站xnxx | 色五月五月丁香亚洲综合网 | 国产黑色丝袜在线播放 | 日韩人妻少妇一区二区三区 | 99久久99久久免费精品蜜桃 | 久久久中文字幕日本无吗 | 日韩av无码一区二区三区不卡 | 狠狠色色综合网站 | 久久久无码中文字幕久... | 亚洲欧美色中文字幕在线 | 色 综合 欧美 亚洲 国产 | 久久精品人人做人人综合 | 欧美xxxx黑人又粗又长 | 欧美 日韩 人妻 高清 中文 | 亚洲午夜福利在线观看 | 国产无遮挡又黄又爽免费视频 | 日产国产精品亚洲系列 | 亚洲乱码国产乱码精品精 | 少妇性荡欲午夜性开放视频剧场 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲中文字幕在线无码一区二区 | 成人免费无码大片a毛片 | 久久久www成人免费毛片 | 欧美肥老太牲交大战 | 亚洲欧美精品aaaaaa片 | 国产乱人偷精品人妻a片 | 久久综合给合久久狠狠狠97色 | 76少妇精品导航 | 国产精品无码mv在线观看 | 国产一区二区三区日韩精品 | 99精品国产综合久久久久五月天 | 在线播放免费人成毛片乱码 | 国产精品国产三级国产专播 | 欧美日韩在线亚洲综合国产人 | 无码一区二区三区在线观看 | 老司机亚洲精品影院无码 | 特黄特色大片免费播放器图片 | 九月婷婷人人澡人人添人人爽 | 中文字幕精品av一区二区五区 | 黑人玩弄人妻中文在线 | 亚洲精品一区国产 | 又色又爽又黄的美女裸体网站 | 日本又色又爽又黄的a片18禁 | 人人妻人人澡人人爽人人精品浪潮 | 丰满人妻被黑人猛烈进入 | 蜜桃视频韩日免费播放 | 精品成人av一区二区三区 | 国产xxx69麻豆国语对白 | 久久无码中文字幕免费影院蜜桃 | 激情爆乳一区二区三区 | 欧美 丝袜 自拍 制服 另类 | 亚洲 欧美 激情 小说 另类 | 欧美肥老太牲交大战 | 日韩av无码一区二区三区不卡 | 国产三级久久久精品麻豆三级 | 六十路熟妇乱子伦 | 国产精品怡红院永久免费 | 久久久久久久女国产乱让韩 | 国产性生交xxxxx无码 | 免费观看又污又黄的网站 | 六月丁香婷婷色狠狠久久 | 亚洲s色大片在线观看 | 亚洲国产精品美女久久久久 | 纯爱无遮挡h肉动漫在线播放 | 国产色在线 | 国产 | 97无码免费人妻超级碰碰夜夜 | 天天拍夜夜添久久精品 | 亚洲国产精品无码一区二区三区 | 无码帝国www无码专区色综合 | 天天综合网天天综合色 | 欧洲vodafone精品性 | 一本加勒比波多野结衣 | 欧美人与善在线com | 欧美日韩一区二区免费视频 | 日韩av无码中文无码电影 | 99久久亚洲精品无码毛片 | 久久国产精品二国产精品 | 亚洲综合另类小说色区 | 青青青手机频在线观看 | 国产成人精品一区二区在线小狼 | 色五月五月丁香亚洲综合网 | 亚洲成a人片在线观看无码 | 伊人久久婷婷五月综合97色 | 亚洲成av人片天堂网无码】 | 一本久道久久综合婷婷五月 | 亚洲精品美女久久久久久久 | 欧美一区二区三区视频在线观看 | 国产一区二区三区日韩精品 | 亚洲日韩av片在线观看 | 日本乱人伦片中文三区 | 熟妇人妻激情偷爽文 | 18精品久久久无码午夜福利 | 澳门永久av免费网站 | 人人妻人人澡人人爽精品欧美 | 亚洲色欲久久久综合网东京热 | 久久www免费人成人片 | 少妇被粗大的猛进出69影院 | 人妻与老人中文字幕 | 国产成人无码av片在线观看不卡 | 日本精品少妇一区二区三区 | 国产成人精品久久亚洲高清不卡 | 99久久99久久免费精品蜜桃 | 亚洲 欧美 激情 小说 另类 | 在线观看国产午夜福利片 | 红桃av一区二区三区在线无码av | 久久久久久av无码免费看大片 | 久久人人爽人人爽人人片av高清 | 久久午夜无码鲁丝片午夜精品 | 精品国产av色一区二区深夜久久 | 18禁黄网站男男禁片免费观看 | 国产猛烈高潮尖叫视频免费 | 久精品国产欧美亚洲色aⅴ大片 | 高潮喷水的毛片 | 少妇太爽了在线观看 | 欧美亚洲日韩国产人成在线播放 | 国产人妻精品午夜福利免费 | 骚片av蜜桃精品一区 | 午夜成人1000部免费视频 | 蜜桃无码一区二区三区 | 亚洲狠狠婷婷综合久久 | 一本大道久久东京热无码av | 奇米影视7777久久精品 | 一本久道久久综合狠狠爱 | 久久久久久a亚洲欧洲av冫 | 东北女人啪啪对白 | 亚洲 激情 小说 另类 欧美 | 九九热爱视频精品 | 国产精品毛片一区二区 | 夜夜高潮次次欢爽av女 | 99精品无人区乱码1区2区3区 | 国产又爽又猛又粗的视频a片 | 女人高潮内射99精品 | 色一情一乱一伦 | 久久久中文字幕日本无吗 | 成年女人永久免费看片 | 久久久久久久女国产乱让韩 | 欧美老熟妇乱xxxxx | 亚洲春色在线视频 | 亚洲成a人片在线观看无码3d | 国产麻豆精品精东影业av网站 | 熟妇激情内射com | 男女作爱免费网站 | 免费观看又污又黄的网站 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 澳门永久av免费网站 | 婷婷色婷婷开心五月四房播播 | 4hu四虎永久在线观看 | 初尝人妻少妇中文字幕 | 亚洲成a人一区二区三区 | 久久久久成人精品免费播放动漫 | 中文字幕人妻无码一夲道 | 成人免费视频在线观看 | 欧美日本免费一区二区三区 | 欧美人与物videos另类 | 一本久久a久久精品vr综合 | 丰满妇女强制高潮18xxxx | 一本加勒比波多野结衣 | 国产精品美女久久久 | 国产后入清纯学生妹 | 麻豆国产丝袜白领秘书在线观看 | 亚洲人成影院在线无码按摩店 | 思思久久99热只有频精品66 | 亚洲а∨天堂久久精品2021 | 无码一区二区三区在线 | 人妻少妇精品无码专区二区 | 人妻少妇精品无码专区动漫 | 精品成在人线av无码免费看 | 男女性色大片免费网站 | 国产精品久久久久久无码 | 澳门永久av免费网站 | 亚洲一区二区三区香蕉 | 亚洲成在人网站无码天堂 | 亚洲 欧美 激情 小说 另类 | 成在人线av无码免观看麻豆 | 亚洲中文字幕成人无码 | 性做久久久久久久免费看 | 日日躁夜夜躁狠狠躁 | 天堂一区人妻无码 | аⅴ资源天堂资源库在线 | 亚洲人亚洲人成电影网站色 | 乱码av麻豆丝袜熟女系列 | 日产国产精品亚洲系列 | 成人av无码一区二区三区 | 成人综合网亚洲伊人 | 正在播放老肥熟妇露脸 | 欧美老熟妇乱xxxxx | 亚欧洲精品在线视频免费观看 | 亚洲天堂2017无码 | 欧美人妻一区二区三区 | 国产av一区二区精品久久凹凸 | 国产精品久久久久久亚洲毛片 | 一本久久a久久精品vr综合 | 国产熟妇另类久久久久 | 亚洲一区二区三区 | 激情五月综合色婷婷一区二区 | 樱花草在线社区www | 高中生自慰www网站 | 欧美野外疯狂做受xxxx高潮 | 国产精品18久久久久久麻辣 | 久久久久久久久蜜桃 | 色欲av亚洲一区无码少妇 | 一区二区三区高清视频一 | 久久亚洲中文字幕无码 | 国产三级久久久精品麻豆三级 | 亚洲 激情 小说 另类 欧美 | 国产精品自产拍在线观看 | 成人一在线视频日韩国产 | 亚洲乱码国产乱码精品精 | 国产美女精品一区二区三区 | 色婷婷综合激情综在线播放 | 无码帝国www无码专区色综合 | 国产午夜无码精品免费看 | 久9re热视频这里只有精品 | 成人欧美一区二区三区黑人免费 | 亚洲精品国产第一综合99久久 | 色婷婷欧美在线播放内射 | 55夜色66夜色国产精品视频 | 国产精品第一国产精品 | 国产明星裸体无码xxxx视频 | 欧美熟妇另类久久久久久多毛 | 激情综合激情五月俺也去 | 中文字幕无码视频专区 | 亚洲色www成人永久网址 | 天海翼激烈高潮到腰振不止 | 亚洲成a人一区二区三区 | 无码人妻少妇伦在线电影 | 沈阳熟女露脸对白视频 | 一本久道久久综合婷婷五月 | 99久久婷婷国产综合精品青草免费 | 久久无码人妻影院 | 欧洲欧美人成视频在线 | 国产精品香蕉在线观看 | 高潮毛片无遮挡高清免费视频 | 亚洲乱码中文字幕在线 | 亚洲中文字幕在线观看 | 中文字幕无码人妻少妇免费 | 久久精品丝袜高跟鞋 | 激情综合激情五月俺也去 | 一本久久a久久精品vr综合 | 日本一本二本三区免费 | 亚洲色欲色欲天天天www | 精品一二三区久久aaa片 | 国产婷婷色一区二区三区在线 | 天天燥日日燥 | 丰满人妻精品国产99aⅴ | 国产猛烈高潮尖叫视频免费 | 成人性做爰aaa片免费看 | 东北女人啪啪对白 | 日日摸日日碰夜夜爽av | 欧美性生交活xxxxxdddd | 精品一二三区久久aaa片 | 成人免费视频一区二区 | 午夜精品一区二区三区的区别 | 欧美成人高清在线播放 | 欧洲极品少妇 | 国产精品久久久 | 亚洲精品一区二区三区婷婷月 | 欧美激情一区二区三区成人 | 帮老师解开蕾丝奶罩吸乳网站 | 18黄暴禁片在线观看 | 久久精品人妻少妇一区二区三区 | 久久久久se色偷偷亚洲精品av | 国产成人综合美国十次 | 麻豆精品国产精华精华液好用吗 | 久热国产vs视频在线观看 | 国语精品一区二区三区 | 久久精品丝袜高跟鞋 | 一本无码人妻在中文字幕免费 | 人人澡人人妻人人爽人人蜜桃 | 日本丰满护士爆乳xxxx | 日本大香伊一区二区三区 | 中文字幕无码热在线视频 | 国产精品成人av在线观看 | 国产麻豆精品一区二区三区v视界 | 亚洲中文字幕无码中字 | 精品久久久无码人妻字幂 | 国产偷国产偷精品高清尤物 | 无码精品国产va在线观看dvd | 在教室伦流澡到高潮hnp视频 | 亚洲国产欧美日韩精品一区二区三区 | 成人性做爰aaa片免费看 | 国产精品久久久一区二区三区 | 精品欧洲av无码一区二区三区 | 极品尤物被啪到呻吟喷水 | 免费人成在线观看网站 | 国产精品久久久久久亚洲毛片 | 狂野欧美激情性xxxx | 日韩视频 中文字幕 视频一区 | 99re在线播放 | 国内精品人妻无码久久久影院蜜桃 | 野狼第一精品社区 | 夜夜影院未满十八勿进 | 三上悠亚人妻中文字幕在线 | 九九综合va免费看 | 亚洲精品一区二区三区大桥未久 | 亚洲国产精品无码一区二区三区 | 国产在线无码精品电影网 | 成人精品视频一区二区 | 国产成人精品视频ⅴa片软件竹菊 | 人人妻人人澡人人爽欧美精品 | 国产另类ts人妖一区二区 | 久久国产精品偷任你爽任你 | 久久精品中文字幕大胸 | 国产97在线 | 亚洲 | 丰满少妇熟乱xxxxx视频 | 久久国产36精品色熟妇 | 97夜夜澡人人爽人人喊中国片 | 国产舌乚八伦偷品w中 | 成年美女黄网站色大免费全看 | 亚洲经典千人经典日产 | 久久aⅴ免费观看 | 久久久久国色av免费观看性色 | 熟女俱乐部五十路六十路av | 无码人妻精品一区二区三区不卡 | 亚洲精品一区国产 | 牲欲强的熟妇农村老妇女视频 | 中文无码精品a∨在线观看不卡 | 在线a亚洲视频播放在线观看 | 蜜臀av在线播放 久久综合激激的五月天 | 丰满少妇人妻久久久久久 | 国产艳妇av在线观看果冻传媒 | 欧洲美熟女乱又伦 | 露脸叫床粗话东北少妇 | 国产激情精品一区二区三区 | 久久久成人毛片无码 | 色偷偷人人澡人人爽人人模 | 超碰97人人射妻 | 日产国产精品亚洲系列 | 国产激情艳情在线看视频 | 色婷婷综合激情综在线播放 | 国产精品久久久午夜夜伦鲁鲁 | 一本久道久久综合婷婷五月 | 在线观看国产午夜福利片 | ass日本丰满熟妇pics | 天堂а√在线地址中文在线 | 爆乳一区二区三区无码 | 色婷婷综合激情综在线播放 | 强伦人妻一区二区三区视频18 | 国内精品人妻无码久久久影院 | 亚洲国产欧美日韩精品一区二区三区 | 中文字幕无码免费久久9一区9 | 无码国模国产在线观看 | 色欲久久久天天天综合网精品 | 国产午夜手机精彩视频 | 中文字幕乱码人妻无码久久 | 2019nv天堂香蕉在线观看 | 露脸叫床粗话东北少妇 | 亚洲国产精品一区二区美利坚 | 国内精品久久毛片一区二区 | 久久久av男人的天堂 | www国产精品内射老师 | 欧美真人作爱免费视频 | 国产精品久久福利网站 | 大乳丰满人妻中文字幕日本 | 5858s亚洲色大成网站www | 成在人线av无码免观看麻豆 | 国产精品亚洲lv粉色 | 青青青爽视频在线观看 | 亚洲阿v天堂在线 | 久久99国产综合精品 | 天干天干啦夜天干天2017 | 国产在线一区二区三区四区五区 | 色噜噜亚洲男人的天堂 | 天堂无码人妻精品一区二区三区 | aⅴ亚洲 日韩 色 图网站 播放 | 中文字幕av日韩精品一区二区 | 久久人人97超碰a片精品 | 最新国产麻豆aⅴ精品无码 | 动漫av网站免费观看 | 老熟妇乱子伦牲交视频 | 色窝窝无码一区二区三区色欲 | 噜噜噜亚洲色成人网站 | 午夜精品久久久内射近拍高清 | 露脸叫床粗话东北少妇 | 综合网日日天干夜夜久久 | 国产乱人无码伦av在线a | 精品无码一区二区三区爱欲 | 5858s亚洲色大成网站www | 婷婷丁香五月天综合东京热 | 免费国产黄网站在线观看 | 久久99精品国产.久久久久 | 搡女人真爽免费视频大全 | 亚洲 a v无 码免 费 成 人 a v | 人人妻人人澡人人爽欧美一区 | 国产 浪潮av性色四虎 | 亚洲欧美日韩综合久久久 | 暴力强奷在线播放无码 | 久久精品国产99精品亚洲 | 国产办公室秘书无码精品99 | 色婷婷久久一区二区三区麻豆 | 人人爽人人爽人人片av亚洲 | www国产精品内射老师 | 帮老师解开蕾丝奶罩吸乳网站 | 日本丰满护士爆乳xxxx | 一本久道久久综合狠狠爱 | 青青久在线视频免费观看 | 久激情内射婷内射蜜桃人妖 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 香港三级日本三级妇三级 | 国产精品亚洲专区无码不卡 | 久久精品中文字幕大胸 | 国产亚洲精品久久久ai换 | 欧美日韩在线亚洲综合国产人 | 日本一本二本三区免费 | www国产精品内射老师 | 动漫av一区二区在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲日本va午夜在线电影 | 少妇人妻av毛片在线看 | 任你躁国产自任一区二区三区 | 呦交小u女精品视频 | 国产色视频一区二区三区 | 丝袜人妻一区二区三区 | 青青青爽视频在线观看 | 久久综合给合久久狠狠狠97色 | 亚洲精品成人福利网站 | 强奷人妻日本中文字幕 | 领导边摸边吃奶边做爽在线观看 | 亚洲色偷偷男人的天堂 | 无码人妻久久一区二区三区不卡 | 亚洲欧美日韩综合久久久 | 国产成人无码a区在线观看视频app | 九九久久精品国产免费看小说 | 疯狂三人交性欧美 | 久久伊人色av天堂九九小黄鸭 | 久在线观看福利视频 | 成人免费无码大片a毛片 | 蜜桃视频插满18在线观看 | 久久久亚洲欧洲日产国码αv | 欧美日韩色另类综合 | 成人精品视频一区二区 | 超碰97人人做人人爱少妇 | 大色综合色综合网站 | 伊人久久婷婷五月综合97色 | 午夜性刺激在线视频免费 | a片在线免费观看 | 97人妻精品一区二区三区 | 女人被男人躁得好爽免费视频 | 国产成人一区二区三区别 | 亚洲精品欧美二区三区中文字幕 | 美女扒开屁股让男人桶 | 图片小说视频一区二区 | 欧美性猛交内射兽交老熟妇 | 亚洲中文字幕在线无码一区二区 | 日韩无套无码精品 | 欧美人与禽zoz0性伦交 | 亚洲精品一区二区三区大桥未久 | 给我免费的视频在线观看 | 国产麻豆精品一区二区三区v视界 | 久久精品国产日本波多野结衣 | 人人妻人人澡人人爽欧美一区 | 丰满妇女强制高潮18xxxx | 99视频精品全部免费免费观看 | 国产农村乱对白刺激视频 | 亚洲精品国产第一综合99久久 | 日日噜噜噜噜夜夜爽亚洲精品 | 无码国产色欲xxxxx视频 | 日日摸天天摸爽爽狠狠97 | 色窝窝无码一区二区三区色欲 | 亚洲欧美精品aaaaaa片 | 日本丰满熟妇videos | 精品人妻人人做人人爽夜夜爽 | 亚洲国产av精品一区二区蜜芽 | 国产精品国产三级国产专播 | 亚洲熟妇色xxxxx亚洲 | 人妻与老人中文字幕 | 国产精品人人爽人人做我的可爱 | 亚洲精品综合一区二区三区在线 | 内射老妇bbwx0c0ck | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 少妇愉情理伦片bd | 亚洲成av人综合在线观看 | 精品国产福利一区二区 | 国产精品嫩草久久久久 | 99久久久无码国产精品免费 | 日本欧美一区二区三区乱码 | 久久99精品久久久久久动态图 | 日韩人妻系列无码专区 | 久久亚洲精品中文字幕无男同 | 亚洲中文无码av永久不收费 | 国产真实乱对白精彩久久 | 97人妻精品一区二区三区 | 麻豆国产97在线 | 欧洲 | 欧美老妇交乱视频在线观看 | 久久久国产精品无码免费专区 | 国产精品久久久久久久9999 | 欧美老熟妇乱xxxxx | v一区无码内射国产 | 色窝窝无码一区二区三区色欲 | 欧美人妻一区二区三区 | 国产亚洲美女精品久久久2020 | 牲欲强的熟妇农村老妇女视频 | 无码人中文字幕 | 欧美性猛交xxxx富婆 | 久9re热视频这里只有精品 | 一个人看的www免费视频在线观看 | 日本一区二区三区免费播放 | 国产精品久久久久久亚洲毛片 |