亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAVA基礎學習day23--GUI基礎

2019-11-14 15:25:11
字體:
來源:轉載
供稿:網友

一、GUI概述

1.1、GUI概述

Graphical User Interface(圖形用戶接口)

用圖形的方式,來顯示計算機操作的界面,

CLI:

Command line User Interface(命令行用戶接口)

如DOS,

java為GUI提供的對象都存在java.Awt和javax.Swing兩個包中.

1.2、Awt與Swing

java.Awt:Abstract Window ToolKit(抽象窗口工具包)需要調用本地系統方法實現功能。屬于重量級級控件

javax.Swing:在AWT的基礎上,建立的一套圖形界面系統,其中提供了更多的組件,而且完全由Java實現。增強了移植必,屬于輕量級控件。

1.3、結構

 

二、布局管理器

2.1、布局

容器中的組件的排放方式,就是布局。

2.2、常見的布局管理

FlowLayout(流式布局管理器)

從左到右的順序排列

Panel默認的布局管理器。

BorderLayout(邊界布局管理器)

東、南、西、北、中

Fram默認的面布局管理器。

GridLayout(網格布局管理器)

規則的矩陣

CardLayout(卡片布局管理器)

選項卡

GridBagLayout(網絡包布局管理器)

非規則的矩陣

2.3、

 

import java.awt.*;public class AwtDemo1 {    public static void main(String[] args) {        //聲明一個容器,Frame并設置標題        Frame f=new Frame("Hello World");        //設置窗體大小第一個參數是寬度,第二個參數是高度        f.setSize(600, 300);        //設置窗體運行的位置,屏幕中顯示的位置        f.setLocation(400, 200);        //設置窗體布局方式,默認為BorderLayout,設置為流式布局        f.setLayout(new FlowLayout());                //聲明新的控件        Button btn=new Button("按鍵");        //將控件添加到窗體        f.add(btn);                //設置窗體可見,默認是不可見的        f.setVisible(true);    }}

 

 

三、事件

3.1、事件監聽機制

事件源(組件)awt包或者swing中的那些圖形界面組件

事件(Event):每一個事件源都自己的特有的對應的事件和共性事件

監聽器(Listener):將可以觸發某一個事件的動作(不只一個動作)都已經封閉到了監聽器中.

以上3種,都在java中已經定義好了,直接獲取對象用使用就可以

事件處理(引發事件后處理方式):我們要做的事情是,就是產生的動作進行處理.

3.2、事件監聽機制特點

 

3.3、 示例

WindowsListener 接口有7個方法要重寫,一般為直接實現而使用其子類

WindwoAdapter() 

 

接收窗口事件的抽象適配器類。此類中的方法為空。此類存在的目的是方便創建偵聽器對象。

 

擴展此類可創建 WindowEvent 偵聽器并為所需事件重寫該方法。(如果要實現 WindowListener 接口,則必須定義該接口內的所有方法。此抽象類將所有方法都定義為 null,所以只需針對關心的事件定義方法。) 

 

只需要繼承 WindwoAdapter類,實現需要的方法即可

 

import java.awt.*;import java.awt.event.*;public class AwtDemo1 {    public static void main(String[] args) {        //聲明一個容器,Frame并設置標題        Frame f=new Frame("Hello World");        //設置窗體大小第一個參數是寬度,第二個參數是高度        f.setSize(600, 300);        //設置窗體運行的位置,屏幕中顯示的位置        f.setLocation(400, 200);        //設置窗體布局方式,默認為BorderLayout,設置為流式布局        f.setLayout(new FlowLayout());                //聲明新的控件        Button btn=new Button("按鍵");        //添加監聽事件                //將控件添加到窗體        f.add(btn);                //設置窗體可見,默認是不可見的        f.setVisible(true);        //添加監聽器        f.addWindowListener(new MyWinEvent());    }}class MyWinEvent extends WindowAdapter{    @Override    public void windowActivated(WindowEvent e) {        // 激活窗口時調用        super.windowActivated(e);        System.out.);    }    @Override    public void windowClosed(WindowEvent e) {        // 當窗口已被關閉時調用        super.windowClosed(e);        System.out.println("我被關閉了");    }    @Override    public void windowClosing(WindowEvent e) {        // 窗口正處在關閉過程中時調用。        super.windowClosing(e);        System.out.println("我正在被關閉");    }    @Override    public void windowDeactivated(WindowEvent e) {        // 停用窗口時調用。        super.windowDeactivated(e);        System.out.println("我被停用了");    }    @Override    public void windowDeiconified(WindowEvent e) {        // 取消圖標化窗口時調用        super.windowDeiconified(e);        System.out.println("取消圖標化窗口");            }    @Override    public void windowGainedFocus(WindowEvent e) {        // 該 Window 被設置為聚焦 Window 時調用,聚焦 Window 意味著該 Window 或其某個子組件將接收鍵盤事件。        super.windowGainedFocus(e);        System.out.println("獲取焦點");    }    @Override    public void windowIconified(WindowEvent e) {        //圖標化窗口時調用。        super.windowIconified(e);        System.out.println("圖標化窗口時調用。");    }    @Override    public void windowLostFocus(WindowEvent e) {        // 該 Window 不再為聚焦 Window 時調用,不再為聚焦 Window 意味著鍵盤事件不再傳遞到該 Window 或其任意子組件。        super.windowLostFocus(e);        System.out.println("失去焦點");    }    @Override    public void windowOpened(WindowEvent e) {        //已打開窗口時調用。        super.windowOpened(e);        System.out.println("窗口打開了");    }    @Override    public void windowStateChanged(WindowEvent e) {        // 窗口狀態改變時調用。        super.windowStateChanged(e);        System.out.println("窗口狀態改變時調用。");    }    }

 

 

四、Action事件

4.1、Action事件

addActionListener(ActionListener l)
添加指定的動作偵聽器,以接收發自此按鈕的動作事件

只有一個方法

actionPerformed(ActionEvent e)
發生操作時調用。

 

用于接收操作事件的偵聽器接口。對處理操作事件感興趣的類可以實現此接口,而使用該類創建的對象可使用組件的 addActionListener 方法向該組件注冊。在發生操作事件時,調用該對象的 actionPerformed 方法。 

 

 

4.2、示例

 

 

 

五、鼠標、鍵盤與對話框事件

5.1、示例

 

/*鼠標與鍵盤事件*/import java.awt.*;import java.awt.event.*;class AwtDemo3 {    public static void main(String[] args)     {        new mouseAndKey();    }}class mouseAndKey{    private Frame f;    private Button btn;    private TextField tf;    public mouseAndKey()    {        init();    }    //初始化    public void init()    {        f=new Frame("My Frame");        btn=new Button("My Button");        //指定列數        tf=new TextField(20);        //設置位置,大小        f.setBounds(200,300,500,400);        f.setLayout(new FlowLayout()); //流式布局                f.add(btn);        f.add(tf);        f.setVisible(true);        //為窗口添加監聽器         myEvent();         //添加鼠標監聽器         addMouseEvent();         //添加鍵盤監聽器        addMykeyEvent();        //添加文件框監聽器        addTfEvent();    }    //窗口監聽器    private  void myEvent()    {        f.addWindowListener(new WindowAdapter(){            //添加關閉事件            public void windowClosing(WindowEvent e)            {                System.out.println("窗口關閉了");                System.exit(0);            }        });    }    //添加鼠標事件    private void addMouseEvent()    {                btn.addActionListener(new ActionListener(){            //活動狀態            public void actionPerformed(ActionEvent e){            System.out.println("窗口活動狀態action");            }        });        //添加鼠標監聽器        btn.addMouseListener(new MouseAdapter(){            /*            int clickedCount=1;            //單擊事件            public void mouseClicked(MouseEvent e)            {                System.out.println("鼠標單擊"+clickedCount++);            }        });        */        //雙擊事件                int doubleClickCount=1;        public void mouseClicked(MouseEvent e)            {                if (e.getClickCount()==2)                {                    System.out.println("鼠標雙擊"+doubleClickCount++);                }                            }            //鼠標進入事件            int count=1;        public void mouseEntered(MouseEvent e)        {                        System.out.println("鼠標進入控件"+count++);        }        });            }    private void addMykeyEvent()    {        btn.addKeyListener(new KeyAdapter(){        //按下某個鍵時調用此方法                public void keyPressed(KeyEvent e)        {            //System.out.println("按下:"+KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());            /*            //按下esc鍵關閉窗口            if(e.getKeyCode()==KeyEvent.VK_ESCAPE)            {                System.exit(0);            }            */            if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)            {                System.out.println("ctrl+enter");            }        }        //釋放某個鍵時調用此方法。                public void keyReleased(KeyEvent e)        {            //System.out.println("釋放:"+KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());        }            //鍵入某個鍵時調用此方法。                public void keyTyped(KeyEvent e)        {            //System.out.println("輸入:"+KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());                    }        });    }    private void addTfEvent(){        tf.addKeyListener(new KeyAdapter(){            public void keyPressed(KeyEvent e)            {                int code=e.getKeyCode();                if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))                {                        System.out.println(code+"....是不合法的!");                    //不能輸入進去                    e.consume();                }            }        });            }}

 

示例、

 

/*在文本框中輸入目錄,點擊轉到 按鍵,將該目錄中的文件與文件夾名稱列在下面的文本區域中*/import java.awt.*;import java.awt.event.*;import java.io.*;class TextFieldDemo {    public static void main(String[] args)     {        new MyTextField();    }}/*    private Frame f; 窗體    private Button btn; 按鍵    private TextField tf; 文本框    private TextArea ta; 多行文本域    private Dialog d; 對話框    private Label lab; 文本信息    private Button okBtn; 確定按鍵*/class MyTextField{    private Frame f;    private Button btn;    private TextField tf;    private TextArea ta;    private Dialog d;    private Label lab;    private Button okBtn;    public MyTextField()    {        init();    }    //初始化    public void init()    {        f=new Frame("根據目錄列出所有文件");        f.setBounds(300,100,600,500);        f.setLayout(new FlowLayout());        tf=new TextField(30);        btn=new Button("轉到");        ta=new TextArea(20,50);        /*        提示窗口        */        d=new Dialog(f,"提示信息",true);        lab=new Label();        okBtn=new Button("確定");        d.add(lab);        d.add(okBtn);        d.setBounds(400,200,240,150);        d.setLayout(new FlowLayout());        //將控件添回到窗體        f.add(tf);        f.add(btn);        f.add(ta);        //設置窗體可見        f.setVisible(true);        //添加事件        myEvent();    }    public void myEvent()    {            //窗體監聽器,        f.addWindowListener(new WindowAdapter(){            //關閉事件            public void windowClosing(WindowEvent e)            {                System.exit(0);            }        });        //文本框添加事件監聽,輸入完成,敲回車執行        tf.addKeyListener(new KeyAdapter()        {            public void keyPressed(KeyEvent e)            {                if(e.getKeyCode()==KeyEvent.VK_ENTER)                {                        //調用                    showDir();                }            }        }            );        //按鍵添加監聽器,事件輸入完成,點按鍵執行        btn.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent e)            {                    //調用顯示                 showDir();            }        }            );        //對話框事件        //窗體監聽器,        d.addWindowListener(new WindowAdapter(){            //關閉事件            public void windowClosing(WindowEvent e)            {    //將對話框隱藏                d.setVisible(false);            }        });        okBtn.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e)            {//將對話框隱藏                d.setVisible(false);            }        });    }    private void showDir()    {        //獲取文本框輸入的內容                String dirPath=tf.getText();                //封裝為文件                File dir=new File(dirPath);                //判斷是不是目錄同時是否存在                if(dir.exists()&&dir.isDirectory())                {    //存在并且目錄存在就把多行文本框清空                    ta.setText("");                    //獲取文件列表                    File [] files=dir.listFiles();                    for(File f:files)                    {                        //向多行文本域中添加內容,增加                        ta.append(f.getName()+"/n");                    }                }else                {                //對話框信息設置                String info="您輸入的路徑:"+dirPath+" 是錯誤的請重新輸入";                lab.setText(info);                //對話框顯示                d.setVisible(true);                }                //將文本框清空                tf.setText("");    }}

 

六、菜單

6.1、示例

 

/*    菜單:private Frame f;   窗體    private MenuBar mb;  菜單欄    private Menu m; 菜單    private MenuItem closeItem; 菜單項關閉菜單*/import java.awt.*;import java.awt.event.*;class MenuDemo {    private Frame f;    private MenuBar mb;    private Menu m;    private Menu subMenu;//子菜單的子菜單    private MenuItem closeItem;    private MenuItem subItem; //子菜單條目屬于subMenu的子菜單項    //構造方法    public MenuDemo()    {        init();    }    /*    初始化    */    public void init()    {        //窗體        f=new Frame("有菜單的窗體");        //設置位置,寬,高        f.setBounds(300,100,500,400);        //布局        f.setLayout(new FlowLayout());        //菜單欄        mb=new MenuBar();        //菜單        m=new Menu("文件");        subMenu=new Menu("子菜單");        //菜單項        closeItem=new MenuItem("退出");        subItem=new MenuItem("子菜單條目");                //菜單添加菜單項        subMenu.add(subItem);        m.add(subMenu);        m.add(closeItem);                //菜單欄添加菜單        mb.add(m);        //窗體設置菜單欄        f.setMenuBar(mb);        //設置顯示        f.setVisible(true);        myEvent();    }    /*    設置監聽器    */    private void myEvent()    {        /*            通過右上角X關閉窗體        */        f.addWindowListener(new WindowAdapter(){            public void windowClosing(WindowEvent e)            {                System.out.println("通過關閉X退出,這個窗體");                System.exit(0);            }        });        /*        通過菜單退出        */        closeItem.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e)            {                System.out.println("通過菜單退出,這個窗體");                System.exit(0);            }        });    }    /*    測試    */    public static void main(String[] args)     {        new MenuDemo ();    }}

 

 

 

七、打開與關閉文件 

7.1、示例,添加打開菜單項

 

FileDialog

public FileDialog(Frame parent,                  String title,                  int mode)
創建一個具有指定標題的文件對話框窗口,用于加載或保存文件。

如果 mode 的值為 LOAD,那么文件對話框將查找要讀取的文件,所顯示的文件是當前目錄中的文件。如果 mode 的值為 SAVE,則文件對話框將查找要寫入文件的位置。

 

參數:
parent - 對話框的所有者
title - 對話框的標題
mode - 對話框的模式,可以是 FileDialog.LOADFileDialog.SAVE
/*    菜單:    private Frame f;   窗體    private MenuBar mb; 菜單欄    private Menu m;  菜單    private MenuItem openItem; 打開    private MenuItem closeItem; 關閉    private MenuItem saveItem;保存    //構造方法*/package mymenu;import java.awt.*;import java.awt.event.*;import java.io.*;public class MenuDemo1 {    private Frame f;    private MenuBar mb;    private Menu fileMenu;    private MenuItem openItem;    private MenuItem closeItem;    private MenuItem saveItem;    private FileDialog openDia; //打開對話框    private FileDialog saveDia;//保存對話框    private TextArea ta;    private File file;    //構造方法    public MenuDemo1()    {        init();    }    /*    初始化    */    public void init()     {        //窗體        f=new Frame("有菜單的窗體");        //設置位置,寬,高        f.setBounds(300,100,650,500);        //布局        //f.setLayout(new FlowLayout());        //菜單欄        mb=new MenuBar();        //菜單        fileMenu=new Menu("文件");        //菜單項        openItem=new MenuItem("打開");        saveItem=new MenuItem("保存");        closeItem=new MenuItem("退出");        //菜單添加菜單項        fileMenu.add(openItem); //添加打開        fileMenu.add(saveItem); //添加保存        fileMenu.add(closeItem); //添加關閉        //菜單欄添加菜單        mb.add(fileMenu);        //窗體設置菜單欄        f.setMenuBar(mb);        //打開,關閉對話框        openDia=new FileDialog(f,"打開",FileDialog.LOAD);        saveDia=new FileDialog(f,"保存",FileDialog.SAVE);        ta=new TextArea();                f.add(ta);        myEvent();        //設置顯示        f.setVisible(true);            }    /*    設置監聽器    */    private void myEvent()    {        /*            通過右上角X關閉窗體        */        f.addWindowListener(new WindowAdapter(){            public void windowClosing(WindowEvent e)            {                System.out.println("通過關閉X退出,這個窗體");                System.exit(0);            }        });        /*        打開        */        openItem.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e)             {                openDia.setVisible(true);                show();            }        });        /*        保存        */        saveItem.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e)             {                save();            }        });        /*        通過菜單退出        */        closeItem.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e)            {                    System.out.println("通過菜單退出,這個窗體");                System.exit(0);            }        });    }    private void show()    {        String dirPath=openDia.getDirectory(); //路徑        String fileName=openDia.getFile();//文件名        //打印路徑        System.out.println(dirPath+"..."+fileName);                if(dirPath==null || fileName==null)            return;        ta.setText("");        File file=new File(dirPath,fileName); //封裝為文件        BufferedReader br=null;        try{        br=new BufferedReader(new FileReader(file));        String line=null;                while((line=br.readLine())!=null)        {            ta.append(line+"/n");        }        }catch(IOException e)        {                    }finally{            try            {                if(br!=null)                    br.close();            }            catch (IOException e)            {            }            }        }        /*        保存        */    private void save()    {            if(file==null){        //設置        saveDia.setVisible(true);        String dirPath=saveDia.getDirectory(); // 目錄        String fileName=saveDia.getFile();//文件        //判斷路徑和文件名是否為空        if (dirPath==null || fileName==null)//啥也不做            return;        //如果文件為空就,new         file=new File(dirPath,fileName);        }        //不為空就直接保存        BufferedWriter bw=null;        try        {                        bw =new BufferedWriter(new FileWriter(file));            //獲取多行文本框內容            String context=ta.getText();            //System.out.println(context);            bw.write(context);            //bw.flush();        }        catch (IOException e)        {                    }finally{        try            {                if (bw!=null)                    bw.close();                            }            catch (IOException ex)            {            }        }    }    /*    測試    */    public static void main(String[] args)     {        new MenuDemo1 ();    }}/*FileDialogpublic FileDialog(Frame parent,                  String title,                  int mode)創建一個具有指定標題的文件對話框窗口,用于加載或保存文件。 如果 mode 的值為 LOAD,那么文件對話框將查找要讀取的文件,所顯示的文件是當前目錄中的文件。如果 mode 的值為 SAVE,則文件對話框將查找要寫入文件的位置。 參數:parent - 對話框的所有者title - 對話框的標題mode - 對話框的模式,可以是 FileDialog.LOAD 或 FileDialog.SAVE */

 

                                                      八、打包

8.1、將示中打所為jar文件

編譯帶包的源文件

 javac -d F:/java/day22/menu MenuDemo1.java

打包

Manifest-Version: 1.0
Created-By: 1.8.0_60 (
Oracle Corporation)
Main-Class: mymenu.MenuDemo1

 

每個標簽冒號后都跟上一個空格

最后一行需要有一個回車鍵,否則后面那一行是不能打包進去的

沒有空格會報

java.io.IOException: invalid header field        at java.util.jar.Attributes.read(Attributes.java:393)        at java.util.jar.Manifest.read(Manifest.java:182)        at java.util.jar.Manifest.<init>(Manifest.java:52)        at sun.tools.jar.Main.run(Main.java:132)        at sun.tools.jar.Main.main(Main.java:1022)

1.txt

Main-Class: mymenu.MenuDemo1

 

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品夜色7777狼人| 亚洲激情视频在线观看| 亚洲欧美另类中文字幕| 宅男66日本亚洲欧美视频| 欧美裸体男粗大视频在线观看| 韩国福利视频一区| 欧美视频不卡中文| 国产欧美日韩精品丝袜高跟鞋| 人人爽久久涩噜噜噜网站| 亚洲精品成a人在线观看| 性欧美办公室18xxxxhd| 97香蕉久久夜色精品国产| 欧美性感美女h网站在线观看免费| 亚洲色图国产精品| 久久影视三级福利片| 国产精品三级在线| 日韩有码视频在线| 欧美日韩亚洲天堂| 草民午夜欧美限制a级福利片| 亚洲色图欧美制服丝袜另类第一页| 亚洲欧洲一区二区三区在线观看| 国产日韩亚洲欧美| 成人日韩av在线| 色妞久久福利网| 久久久久久久久电影| 国模极品一区二区三区| 亚洲成人网av| 91亚洲精品久久久| 亚洲日韩中文字幕在线播放| 久久av红桃一区二区小说| 欧美激情久久久久久| 欧美视频在线免费| 久久精品99久久久久久久久| 国内精品久久久久影院 日本资源| 欧美插天视频在线播放| 日韩美女福利视频| 91国内产香蕉| 中文字幕亚洲一区在线观看| 国产一区二区三区欧美| 亚洲国产精彩中文乱码av在线播放| 欧美日韩亚洲成人| 欧美午夜精品久久久久久久| 欧美极度另类性三渗透| 精品国产成人在线| 精品av在线播放| 国产精品免费久久久久影院| 欧美激情第99页| 国产精品老牛影院在线观看| 亚洲午夜久久久影院| 热久久这里只有精品| 欧美精品第一页在线播放| 久久这里只有精品视频首页| 国产精品成人免费视频| 亚洲风情亚aⅴ在线发布| 亚洲男人天堂网| 日韩精品极品毛片系列视频| 久久久亚洲影院你懂的| 亚洲欧洲自拍偷拍| 国产不卡一区二区在线播放| 欧美壮男野外gaytube| 国产成人啪精品视频免费网| 亚洲已满18点击进入在线看片| 91精品久久久久久| 日韩综合视频在线观看| 亚洲第一二三四五区| www.日韩.com| 亚洲一二在线观看| 久热国产精品视频| 精品一区二区三区电影| 98精品在线视频| 亚洲免费视频一区二区| 久久视频精品在线| 欧美激情视频网址| 日本韩国欧美精品大片卡二| 国产精品99久久久久久久久久久久| 九九热最新视频//这里只有精品| 欧美性猛交xxxx免费看| 九色精品免费永久在线| 日本一欧美一欧美一亚洲视频| 精品欧美一区二区三区| 91免费人成网站在线观看18| 精品视频久久久久久久| 91成人免费观看网站| 欧美福利在线观看| 欧美日韩国产一区在线| 国产精品自产拍高潮在线观看| 久久久这里只有精品视频| 欧美电影电视剧在线观看| 欧美日韩国产麻豆| 国内精久久久久久久久久人| 国产婷婷成人久久av免费高清| 欧美交受高潮1| 成人写真视频福利网| 亚洲精品少妇网址| 日韩av在线播放资源| 国产精品美女久久久久av超清| 热99精品里视频精品| 亚洲伊人久久综合| 亚洲片av在线| 日韩国产欧美精品一区二区三区| 亚洲人成欧美中文字幕| 中文字幕精品av| 91免费国产网站| 欧美大片免费观看| 91中文字幕在线观看| 欧美日韩中文字幕日韩欧美| 亚洲理论在线a中文字幕| 日本一区二三区好的精华液| 欧美激情二区三区| 国产精品第一区| 日本高清久久天堂| 97视频网站入口| 久久久久久亚洲精品中文字幕| 国产精品久久二区| 亚洲美女免费精品视频在线观看| 国产精品视频地址| 日韩精品欧美激情| 亚洲综合av影视| 成人免费看吃奶视频网站| 国产91精品高潮白浆喷水| 日韩av一区二区在线| 青青青国产精品一区二区| 欧美性xxxx在线播放| 中国china体内裑精亚洲片| 亚洲精品成人久久| 欧美日韩精品在线播放| 国产欧美日韩综合精品| 全球成人中文在线| 精品久久久久久亚洲精品| 红桃视频成人在线观看| 岛国精品视频在线播放| 日韩电影免费观看在线观看| 九九热精品视频| 上原亚衣av一区二区三区| 国产精品视频网站| 精品性高朝久久久久久久| 久久久人成影片一区二区三区| 色偷偷噜噜噜亚洲男人| 日韩av电影国产| 国产日韩欧美电影在线观看| 热99精品里视频精品| 国产欧美在线播放| 国产成人a亚洲精品| 韩国美女主播一区| 亚洲国产欧美一区二区三区同亚洲| 91免费在线视频| 亚洲国语精品自产拍在线观看| 九九热r在线视频精品| 欧美激情18p| 少妇高潮久久77777| 欧美日韩ab片| 日韩成人在线网站| 久久精品国产96久久久香蕉| 综合av色偷偷网| 国产欧美精品一区二区三区介绍| 欧美一级bbbbb性bbbb喷潮片| 色黄久久久久久| 久久亚洲精品一区二区| 日韩综合视频在线观看| 亚洲福利视频免费观看| 欧美日韩在线视频首页| 欧美专区日韩视频| 91精品成人久久| 亚洲天堂男人的天堂|