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

使用Swing動態(tài)界面設計技術透析

開發(fā) 后端
本文介紹Swing動態(tài)界面設計技術和體系,并提供有關構建有效的界面的幫助。此應用程序的 UI 使用許多動態(tài)的特性并且可以作為理解它們的極好的起點。

Swing 工具包提供各種用于創(chuàng)建用戶界面的工具和幾乎令人眼花繚亂的選項,這些選項用于在程序生存期間修改界面。小心地使用這些功能可以導致界面能夠適應用戶的需要并簡化交互過程。粗心地使用同樣的功能可以導致非常混亂或徹底不可用的程序。本文介紹Swng動態(tài)界面設計的技術和體系,并提供有關構建有效的界面的幫助。您將修改隨 Sun JDK 一起提供的基于 SwingSet2 示例應用程序的源代碼;此應用程序的 UI 使用許多動態(tài)的特性并且可以作為理解它們的極好的起點。

禁用小部件

Swing動態(tài)界面設計的最簡單形式是使不可用的菜單項或按鈕變灰的 UI。禁用 UI 小部件與禁用所有小部件的方法都是相同的。setEnabled() 函數(shù)是 Component 類的一個功能。清單 1 顯示了禁用按鈕的代碼:

清單 1. 禁用按鈕

  1. 1 button.setEnabled(false);  

正如您看到的,十分簡單。關鍵問題是何時應該 啟用或禁用一個按鈕。通常的設計決策是當按鈕不可用時禁用它。例如,當一個文件從上一次保存以來還沒有被修改時,很多程序禁用 Save 按鈕(以及任何相應的菜單項)。

關于禁用按鈕的重要警告是要記住在適當?shù)臅r候重新啟用它們。例如,如果在單擊按鈕和按鈕的動作完成之間有一個確認步驟,即使確認失敗也應該重新啟用按鈕。

調(diào)整范圍

有時,應用程序需要動態(tài)地調(diào)整數(shù)值小部件的范圍,例如 Spinner 或者 Slider。這可能比它看起來要復雜許多。特別是 Slider 有二級功能 —— 刻度、刻度間隔和標簽 —— 這些可能需要隨著范圍的調(diào)整而加以調(diào)整以避免災難發(fā)生。

SwingSet2 示例沒有進行任何一項調(diào)整,所以您需要通過把 ChangeListener 連接到一個可以修改其他滑塊的滑塊來修改它。輸入新的 SliderChangeListener 類, 如清單 2 所示:

清單 2. 更改滑塊的范圍

  1. 1 class SliderChangeListener implements ChangeListener {  
  2. 2        JSlider h;  
  3. 3   
  4. 4        SliderChangeListener(JSlider h) {  
  5. 5               this.h = h;  
  6. 6        }  
  7. 7   
  8. 8        public void stateChanged(ChangeEvent e) {  
  9. 9            JSlider js = (JSlider) e.getSource();  
  10. 10            int i = js.getValue();  
  11. 11            h.setMaximum(i);  
  12. 12            h.repaint();  
  13. 13        }  
  14. 14 } 

當創(chuàng)建第三個水平滑塊時(最初示例中的滑塊在每個單位處帶有標記,在 5、10 和 11 等處帶有標簽), 另外還創(chuàng)建了一個新的 SliderChangeListener,它把滑塊作為構造器參數(shù)傳遞。當創(chuàng)建第三個垂直的滑塊(范圍從 0 到 100)時,新的 SliderChangeListener 作為變更監(jiān)聽器添加到它。這大致按預期的那樣工作:調(diào)整垂直滑塊改變了水平滑塊的范圍。

不幸的是,刻度和標簽根本不能很好地工作。當范圍變得不是太大時,每五個刻度處的標簽能正確地工作,但是刻度 11 處的額外標簽很快成為一個可用性問題,如圖 1 所示:

圖 1. 一起運行的標簽

標簽 

更新刻度和標簽

在Swing動態(tài)界面設計時,明顯的解決方案是,只要滑塊的***值被更新,就在水平滑塊上簡單地設置刻度間隔,如清單 3 所示:

清單 3. 設置刻度間隔

  1. 1 // DOES NOT WORK 
  2. int tickMajor, tickMinor;  
  3. 3 tickMajor = (i > 5) ? (i / 5) : 1;  
  4. 4 tickMinor = (tickMajor > 2) ?  (tickMajor / 2) : tickMajor;  
  5. 5 h.setMajorTickSpacing(tickMajor);  
  6. 6 h.setMinorTickSpacing(tickMinor);  
  7. 7 h.repaint();  

目前清單 3 是正確的,但是它沒有引起畫在屏幕上的標簽的任何變化。必須使用 setLabelTable() 分別設置標簽。 添加額外一行修復它:

  1. 1 h.setLabelTable(h.createStandardLabels(tickMajor));  

這仍然出現(xiàn)在刻度 11 處存在最初設置的標簽這樣的錯誤。當然本來的意圖是想在滑塊的最右端始終有一個標簽??梢酝ㄟ^刪除舊的標簽(在設置新的***值之前)然后添加一個新的標簽達到這一目的。此代碼 “幾乎” 可以工作:

清單 4. 替換標簽

  1. public void stateChanged(ChangeEvent e) {  
  2. 2        JSlider js = (JSlider) e.getSource();  
  3. 3        int i = js.getValue();  
  4. 4   
  5. 5        // clear old label for top value  
  6. 6        h.getLabelTable().remove(h.getMaximum());  
  7. 7   
  8. 8        h.setMaximum(i);  
  9. 9   
  10. 10        int tickMajor, tickMinor;  
  11. 11        tickMajor = (i > 5) ? (i / 5) : 1;  
  12. 12        tickMinor = (tickMajor > 2) ? (tickMajor / 2) : tickMajor;  
  13. 13        h.setMajorTickSpacing(tickMajor);  
  14. 14        h.setMinorTickSpacing(tickMinor);  
  15. 15        h.setLabelTable(h.createStandardLabels(tickMajor));  
  16. 16        h.getLabelTable().put(new Integer(i),  
  17. 17        new JLabel(new Integer(i).toString(), JLabel.CENTER));  
  18. 18        h.repaint();  
  19. 19 }  

如果我已經(jīng)告訴過您一次,那么我就已經(jīng)告訴您兩次了。

我使用幾乎 的意思是,雖然清單 4 中的代碼刪除了刻度 11 處的標簽,但是它沒有在刻度 i 處添加新標簽;相反,只能看到間隔為 tickMajor 的標簽。首先此解決方法相當令人討厭:

清單 5. 強迫顯示更新

  1. 1 h.setLabelTable(h.getLabelTable()); 

這個看起來無意義的操作實際上有重大的作用。每當設置標簽表時就生成滑塊的標簽。沒有為了修改對表進行特殊回調(diào),所以添加到表中的新值不必產(chǎn)生效果;很顯然,清單 5 中的空操作具有使 Swing 知道它必須更新顯示的副作用。(以免您認為這是我自己發(fā)明的,請注意最初的 SwingSet 代碼包括這樣一個調(diào)用。)

這只留下了一個問題。標簽出現(xiàn)在滑塊的末端這個非常合理的期望有時使兩個標簽互相直接相鄰,乃至重疊,如圖 2 所示:

圖 2. 滑塊末端的重疊標簽

標簽 

很多解決此問題的方法都是可行的。編寫自己的代碼以使用值來填充標簽表并停止以前的序列以便序列中的***標簽與滑塊的末端有一些隔離。我將把這個作為作業(yè)留給您。

在許多情況下,為了啟用和禁用菜單項而限制菜單修改是很實際的。此方法容易受到用于禁用項的常規(guī)警告的影響:避免由于偶然地禁用重要項而使程序處于不可用狀態(tài)。

添加或刪除菜單項或子菜單也是可能的。修改 JMenuBar 沒有這么容易;沒有從工具欄上刪除和替換單個菜單的接口。如果您想修改工具欄(而不是向最右端添加菜單),需要制作一個新的工具欄并用它替換舊的工具欄。

修改單個菜單會立即生效;您不必在將菜單連接到工具欄或另一個菜單之前構建一個菜單。當需要修改菜單選項的選擇時,最容易的方法是修改選定的菜單。您可能仍然想添加或刪除完整的菜單,并且這么做并不是特別難。清單 6 顯示一個將菜單插入到菜單條中給定索引前的方法的簡單示例。此示例假定要替換的 JMenuBar 連接到 JFrame 對象,但是任何能使您獲得和設置菜單條的東西的工作方式都是一樣的:

清單 6. 把一個菜單插入到菜單條中

  1. public void insertMenu(JFrame frame, JMenu menu, int index) {  
  2. 2        JMenuBar newBar = new JMenuBar();  
  3. 3        JMenuBar oldBar = frame.getJMenuBar();  
  4. 4        MenuElement[] oldMenus = oldBar.getSubElements();  
  5. 5        int count = oldBar.getMenuCount();  
  6. 6        int i;  
  7. 7   
  8. 8        for (i = 0; i < count; ++i) {  
  9. 9               if (i == index)  
  10. 10                      newBar.add(menu);  
  11. 11               newBar.add((JMenu) oldMenus[i]);  
  12. 12        }  
  13. 13        frame.setJMenuBar(newBar);  
  14. 14 }  

上面的代碼我不是開始時就試圖編成這樣;這是最終的版本,已經(jīng)很好地修復過了所以它能夠運行并反映一些有趣的怪事。初看起來,實現(xiàn)此功能的明顯方法似乎應該是使用 getComponentAtIndex(),但是這種方法已經(jīng)受到了反對。幸運的是,getSubElements() 已經(jīng)足夠好。為 newBar.add() 而進行到 JMenu 的強制類型轉(zhuǎn)換可能是安全的,但是我不喜歡這樣。getSubElements() 接口不僅對菜單條而且對菜單進行操作,菜單可能具有幾種類型的子元素,JMenu 是可以添加到 JMenuBar 的惟一元素。所以必須把元素強制轉(zhuǎn)換為 JMenu 以把它傳遞到 JMenuBar.add() 方法。不幸的是,如果將來的 API 修訂版允許將除 JMenu 類型之外的元素添加到 JMenuBar,就不再需要把返回的元素強制轉(zhuǎn)換 JMenu了。

清單 6 中的代碼反映了另外一個相當微妙的界面怪事;菜單數(shù)必須提前緩存起來。當把菜單添加到新的菜單條時,它們從舊的菜單條中被刪除。雖然看起來相似,但是清單 7 中的代碼不能工作,因為循環(huán)提前結束了:

清單 7. 循環(huán)結束太早

  1. 1 // DOES NOT WORK 
  2. for (i = 0; i < oldBar.getMenuCount(); ++i) {  
  3. 3        if (i == index)  
  4. 4               newBar.add(menu);  
  5. 5        newBar.add((JMenu) oldMenus[i]);  
  6. 6 }  

清單 7 中的循環(huán)只復制一半數(shù)量的菜單。例如,如果開始菜單條上有 4 個 菜單,它復制前面的兩個菜單。復制完***個菜單以后, i 的值為 1 并且 getMenuCount() 返回 3;在復制完第二個菜單以后,i 的值為 2 并且 getMenuCount() 返回 2,因此循環(huán)結束。我沒有找到任何介紹通過向菜單條添加菜單從而從另一個菜單條刪除菜單這樣的特性的文檔,因此可能不是有意這樣。但是,它很容易達到這個目的。

從菜單條刪除菜單稍微容易一些;只是把所有其他的菜單從舊的菜單條復制到新的菜單條,就完成了刪除菜單。很容易!

如果界面使用了很多動態(tài)菜單更新,創(chuàng)建一組菜單條并在它們之間切換而不是一直動態(tài)地更新它們也許會更好一些。但是,如果如此快地改變菜單,可能會使用戶完全發(fā)瘋。

勘誤:在本文的草稿階段,我忽略了 JMenuBar 類的繼承方法的列表。其實,它有 remove 和 add 方法可以用來在指定的索引處進行刪除和插入。另外一個教訓是:查看繼承的方法而不僅僅是特定于類的方法。

調(diào)整窗口大小

所幸的是對于大多數(shù)情況,窗口大小調(diào)整是自動進行的。但是需要考慮調(diào)整大小產(chǎn)生的一些影響。在非常小的窗口中,按鈕條、菜單條和類似功能可能變成有問題的。管理程序自身的圖形面板需要響應調(diào)整大小事件。讓 Swing 處理對 UI 元素的包裝,但是要密切注視組件的大小;不要獲取一次組件的尺寸然后就一直使用這些值。

更微妙的地方是,一些設計決策(例如滑塊上刻度的密度)可能被適度地更新以響應窗口大小調(diào)整事件。100 像素寬度的滑塊不能具有像 400 像素寬度的滑塊那樣多的可讀標簽。您可能想通過添加全新的有用功能來讓 UI 更進一步用在大型顯示器上。

但是,在多數(shù)情況下,可以忽略窗口大小調(diào)整。您不應該做的是不必要地阻止或重寫它。布局代碼中的窗口一側的便捷工具不是必需的。最小的窗口大小可能是無可厚非的,但是要讓人們能把窗口調(diào)整到他們所需要的大小。

一般原則

Swing 工具包在Swing動態(tài)界面設計方面提供了很大的靈活性。如果小心地使用,動態(tài)更新界面的選項能夠極大地簡化該界面;例如,只有應用菜單的選項時,用戶才能容易地顯示菜單。不幸的是,一些 API 的特性可能使此方法產(chǎn)生一些離奇的行為,并且副作用和相互影響并不總是像您期望的那樣記錄下來。如果您有使用動態(tài)界面的想法,就要準備在調(diào)試上花費一些額外的時間。您可能從 Swing 庫的困境中走出來并發(fā)現(xiàn)自己需要處理出人意料的行為和/或 bug。

不要讓缺乏明顯的實現(xiàn)讓您氣餒。像本文的 JMenuBar 示例所顯示的,即使當 API 不支持某個任務時,您也能自己實現(xiàn)它,雖然有一點間接。盡量不要走極端。當動態(tài) UI 讓用戶清楚它們的固有限制時,它們才能***地發(fā)揮作用。理想的情況是,用戶甚至可能不會注意到界面變化。如果他們能夠使用程序的 Object 菜單的惟一時刻是當他們使某個對象被選擇時,那么其余的時間他們將不會介意不存在該菜單。

另一方面,如果存在這種可能性:用戶不能猜測出一個選項不可用的原因,這時讓用戶嘗試操作并獲得包含信息的消息也許會更好。這對于一些操作尤其重要。如果保存選項被禁用,而我想保存數(shù)據(jù),那么這不會發(fā)生作用。程序可能認為已經(jīng)保存了數(shù)據(jù),但是為什么不讓我無論如何都保存它呢?如果存在不能保存文件的特殊原因,我可能想知道是什么原因。

盡管研究了很多年,界面設計在很多方面仍舊是一個較新的領域,只進行了很少的試驗。Swing動態(tài)界面設計是一個很好的特性,能夠使 UI 更清晰、更簡單和反應更迅速。添加動態(tài)特性需要從幾分鐘的工作到大量時間的花費不等。

【編輯推薦】

  1. 用TableModel框架簡化Swing開發(fā)
  2. 動態(tài)語言是否將會挽救Swing
  3. 使用多線程技術讓你的Swing及時響應各類事件
  4. ***NetBeans 設計教程 使用Matisse輕松設計Swing
  5. 線程與Swing
責任編輯:冰荷 來源: it168
相關推薦

2012-01-16 16:16:49

JavaSwing

2012-01-16 11:03:09

javaswing

2011-05-19 08:49:01

使用片段界面設計Android

2011-06-01 09:31:46

用戶界面設計

2011-06-01 10:58:57

2011-12-20 10:42:22

Android應用界面設計

2015-07-09 10:25:45

界面設計UI設計

2011-06-01 10:30:41

用戶界面

2011-04-11 17:07:33

布局基礎用戶界面設計Android

2013-04-11 10:26:37

Google Glas谷歌眼鏡指南分析

2011-04-11 17:25:30

線性布局用戶界面設計Android

2013-06-21 16:03:40

用戶體驗設計UED手勢

2011-04-19 09:19:37

相對布局界面設計Android

2011-04-08 13:58:10

Android界面設計

2019-07-08 14:33:25

資訊類APPAPP界面設計

2011-04-22 11:01:36

框架布局界面設計Android

2014-09-04 14:51:00

小屏幕界面設計app

2011-05-24 16:07:21

UI設計移動應用

2015-05-07 09:37:56

移動開發(fā)設計

2014-11-26 10:42:55

界面設計
點贊
收藏

51CTO技術棧公眾號

六月丁香婷婷综合| 插吧插吧综合网| 手机av免费在线| caoporm超碰国产精品| 国产成人aa精品一区在线播放| 国产馆在线观看| 国产精品成人自拍| 日本韩国精品在线| 国产免费xxx| 外国精品视频在线观看| 美女一区二区视频| 97香蕉超级碰碰久久免费的优势| 青娱乐国产视频| 国产精品一线| 91精品国产一区二区三区| 国产主播自拍av| 看女生喷水的网站在线观看| 91蝌蚪国产九色| 亚洲综合在线中文字幕| 精品久久久久久久久久久国产字幕| 欧美成人自拍| 国产亚洲精品久久久| 无码人妻精品一区二区三区99不卡| 国产精品高清乱码在线观看 | 5月丁香婷婷综合| 黄色片视频在线免费观看| 搞黄网站在线观看| 国产精品日韩精品欧美在线| 精品免费日产一区一区三区免费| 国产毛片一区二区三区va在线| 91久久综合| 欧美高清激情视频| tube国产麻豆| 欧美电影《轻佻寡妇》| 国产一区av在线| 人妻无码一区二区三区| 精品视频高潮| 精品久久久三级丝袜| 国产一级免费大片| av一级久久| 欧美精品aⅴ在线视频| 精品999在线| av在线不卡精品| 色美美综合视频| 国产在线观看福利| 自拍网站在线观看| 日韩欧美视频一区二区三区| 亚洲熟妇无码一区二区三区| caoporn97在线视频| 亚洲欧美国产毛片在线| 乱子伦一区二区| www免费视频观看在线| 亚洲欧洲av在线| 欧美aaa在线观看| 成人黄色网址| 亚洲午夜电影在线观看| 黄色三级中文字幕| 嗯~啊~轻一点视频日本在线观看| 亚洲毛片av在线| 黄网站色视频免费观看| h片精品在线观看| 日韩欧美第一页| 久草精品在线播放| 国产福利亚洲| 91麻豆精品久久久久蜜臀| 欧美国产日韩另类| 8x国产一区二区三区精品推荐| 日韩欧美国产综合| 久久久高清视频| 国产精品一区二区三区av麻| 亚洲人成网站777色婷婷| 久久国产柳州莫菁门| 日韩片欧美片| 欧美伦理91i| 偷偷操不一样的久久| 天使萌一区二区三区免费观看| 国产精品久久久久久久av电影| 中文字幕自拍偷拍| 国产成人免费视频精品含羞草妖精| 成人精品水蜜桃| 亚洲 另类 春色 国产| 久久久91精品国产一区二区三区| 视频一区二区在线观看| 高清全集视频免费在线| 精品国产福利在线| 免费一区二区三区在线观看| 欧美第一在线视频| 日韩极品精品视频免费观看| www.xx日本| 亚洲一级黄色| 国产精品美女av| 精品人妻一区二区三区麻豆91| av一二三不卡影片| 亚洲精品乱码久久久久久蜜桃91 | 欧美一区二区色| 国产精品久久久久久久成人午夜 | 精品乱码一区二区三区| 大胆av不用播放器在线播放 | 日韩精品乱码久久久久久| 三级成人在线视频| 91久久国产综合久久蜜月精品| 日韩av地址| 亚洲色欲色欲www| 国产精品-区区久久久狼| 亚洲毛片在线免费| 亚洲精品视频中文字幕| 视频这里只有精品| 日韩av网站在线观看| 不卡视频一区二区三区| 成人高清免费在线播放| 午夜精品久久久久久久 | av日韩久久| 亚洲欧洲国产一区| 九热这里只有精品| 美腿丝袜亚洲综合| 欧洲精品国产| 色网在线免费观看| 日韩视频永久免费| 五月天免费网站| 久久综合婷婷| 久久综合婷婷综合| 第一中文字幕在线| 欧美一区二区不卡视频| 成人性生交大片免费看无遮挡aⅴ| 狠狠爱综合网| 亚洲一区二区三区777| 99re热久久这里只有精品34| 色综合久久中文字幕综合网| 免费黄视频在线观看| 四虎成人av| 国产精品视频免费观看www| 涩涩视频在线观看免费| 亚洲国产精品影院| ass极品水嫩小美女ass| 999久久久91| 国产精品美女视频网站| 黄色影院在线播放| 色综合久久99| 老牛影视av老牛影视av| 99人久久精品视频最新地址| 国产精品播放| 国产丝袜在线观看视频| 日韩欧美视频在线| 波多野结衣不卡视频| 精品亚洲欧美一区| 不卡中文字幕在线| 99综合久久| 久久99国产综合精品女同| 国产情侣在线播放| 亚洲人成小说网站色在线| 一区二区三区四区毛片| 亚洲精品99| 亚洲r级在线观看| 呦呦在线视频| 精品美女一区二区| 国产一级18片视频| 国产亚洲人成网站| 亚洲一级片网站| 天堂美国久久| 福利视频久久| 亚洲性受xxx喷奶水| 亚洲天堂av在线免费观看| 99久久久无码国产精品免费蜜柚| 中文字幕不卡在线| 天堂中文av在线| 欧美激情1区| 久久福利电影| 四虎成人在线| 欧美成人免费在线观看| 视频污在线观看| 在线观看视频欧美| 91久久久久久久久久久久久久| 国产乱码精品一区二区三区av| 久久久久久久9| 欧美男男freegayvideosroom| 国产97色在线| 97caopron在线视频| 日韩精品视频免费在线观看| 日本视频www色| 亚洲情趣在线观看| av无码一区二区三区| 轻轻草成人在线| 国产天堂视频在线观看| 免费一区二区三区视频导航| 国产中文字幕日韩| 国产污视频在线播放| 三级精品视频久久久久| 欧美在线精品一区二区三区| 91精品1区2区| 国产无码精品久久久| 欧美国产日本视频| www.四虎精品| 免费精品视频在线| 国产原创popny丨九色| japanese国产精品| 精品国产一区二区三区麻豆小说| 国产亚洲人成a在线v网站 | 成人动漫视频在线| 我看黄色一级片| 黄色精品网站| 亚洲欧洲日韩综合二区| 欧美精品中文| 92福利视频午夜1000合集在线观看| 亚洲美女尤物影院| 九九热这里只有在线精品视| 国产一级在线| 亚洲精品国产精品久久清纯直播| 中文字幕 视频一区| 欧美日韩国产丝袜另类| 妺妺窝人体色www在线下载| 国产欧美一区二区精品仙草咪 | 国产色在线视频| 91极品视觉盛宴| 国产成人自拍视频在线| 亚洲男人电影天堂| 欧美特级黄色录像| 99国内精品久久| 国产裸体视频网站| 精品无码三级在线观看视频| 一本色道无码道dvd在线观看| 激情久久一区| 无码熟妇人妻av在线电影| 亚洲精品午夜av福利久久蜜桃| 日本一区二区在线视频| 亚洲精品白浆高清| 久久99九九| 欧美a大片欧美片| 国产伦精品一区二区三区高清| 日本久久伊人| 亚洲在线第一页| 国产999精品在线观看| 国产欧美va欧美va香蕉在| 日韩视频网站在线观看| 国产精品99久久久久久白浆小说| 极品美鲍一区| 7777kkkk成人观看| 久草在线资源站资源站| 欧美极品少妇xxxxⅹ裸体艺术| 草莓福利社区在线| 欧美成人免费播放| 怡红院在线播放| 久久久久久久香蕉网| 丁香花在线高清完整版视频| 久久久免费观看| 999精品网| 4388成人网| 日韩av首页| 中文字幕一区二区三区蜜月| 色噜噜偷拍精品综合在线| 精品熟妇无码av免费久久| 久久久亚洲综合| 亚洲欧美va天堂人熟伦| 中文字幕成人av| 黄色精品视频在线观看| 综合色中文字幕| 欧美日韩精品一区二区三区视频播放| 亚洲精品欧美激情| 久久国产精品波多野结衣| 亚洲图片欧美一区| 精品成人av一区二区在线播放| 色婷婷av一区| 一区二区小视频| 日韩午夜在线观看视频| 婷婷视频在线观看| 亚洲欧美三级在线| 日本www在线| 欧美黄色成人网| 中文字幕在线免费观看视频| 国产精品96久久久久久| 精品久久免费| 精品蜜桃传媒| 人人狠狠综合久久亚洲婷婷| 亚洲美女自拍偷拍| 亚洲精品影院在线观看| 已婚少妇美妙人妻系列| 精品亚洲成a人在线观看| 精品人妻伦一二三区久| 久久久精品综合| 免费成人深夜夜行网站| 亚洲国产精品久久不卡毛片| 无码人妻久久一区二区三区| 欧美天天综合网| www.天天干.com| 亚洲视频999| 日韩特级毛片| 国产精品久久久久7777婷婷| 日韩最新av| 天堂va久久久噜噜噜久久va| 欧美一区激情| 日韩一级在线免费观看| 国产一区二区三区四| 草草影院第一页| 亚洲一区二区三区四区的| 男人天堂视频在线| 精品捆绑美女sm三区| h网站视频在线观看| 亚州精品天堂中文字幕| 日韩在线电影| 蜜桃麻豆www久久国产精品| 91精品国产福利在线观看麻豆| 日本精品一区二区三区四区| 国产成人综合在线播放| 久久久久无码精品国产sm果冻| 亚洲一二三区在线观看| 一区二区三区免费在线| 亚洲精品一区二区在线| 91精品久久| 国产日韩中文在线| 国产成人三级| 波多野结衣家庭教师在线| 国产乱码一区二区三区| 欧美性猛交xxxx乱大交少妇| 欧美性猛交xxxx黑人| av中文字幕第一页| 色琪琪综合男人的天堂aⅴ视频| 周于希免费高清在线观看| 鬼打鬼之黄金道士1992林正英| 97色伦图片97综合影院| 婷婷激情四射五月天| 久久综合色8888| 日本熟妇成熟毛茸茸| 日韩欧美中文一区二区| 麻豆系列在线观看| 国产精品久久9| 欧洲杯半决赛直播| 欧美色图另类小说| 菠萝蜜视频在线观看一区| 免看一级a毛片一片成人不卡| 在线不卡欧美精品一区二区三区| 浮生影视网在线观看免费| 国产成人在线精品| 九色精品国产蝌蚪| 国产福利视频在线播放| 99久久国产综合色|国产精品| 国产性一乱一性一伧一色| 精品少妇一区二区三区在线播放| 国产不卡在线| av一区观看| 韩国精品一区二区三区| 一起草最新网址| 一区二区三区日韩| 丰满熟妇人妻中文字幕| 午夜精品久久久久久99热| 国产三级精品三级在线观看国产| 99在线观看视频免费| 成人听书哪个软件好| 五月天婷婷网站| 日韩电视剧免费观看网站| 日韩电影免费观看高清完整版| 美女黄毛**国产精品啪啪| 久久精品成人| 亚洲不卡的av| 日韩欧美资源站| 蜜桃视频动漫在线播放| 欧美精品国产精品久久久 | 91产国在线观看动作片喷水| 日韩精选在线| 男人插女人下面免费视频| 国产精品美女视频| av 一区二区三区| 性欧美长视频免费观看不卡| 亚州国产精品| 亚洲一级免费观看| 亚洲人成伊人成综合网小说| 亚洲精品视频91| 欧美洲成人男女午夜视频| 精品一区二区三区在线| 欧美视频亚洲图片| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲精品97久久中文字幕无码| 91成人在线播放| 久久一区二区三区电影| 日本精品一二三| 欧美午夜精品伦理| 欧美日韩视频在线播放| 91九色偷拍| 日韩精品视频网站| 中文字幕av播放| 亚洲欧美国产精品专区久久| 亚洲欧洲二区| www.中文字幕在线| 亚洲欧美在线高清| 四季av日韩精品一区| 国产九九精品视频| 亚洲视频观看| 亚洲毛片亚洲毛片亚洲毛片| 日韩欧美国产一区二区在线播放| 手机看片久久| www.好吊操| 国产免费久久精品| 亚洲黄色精品视频| 国产精品一二区| 99成人精品| 欧美丰满熟妇bbbbbb| 亚洲天堂av综合网| jazzjazz国产精品久久| 成人综合久久网| 欧美视频不卡中文| 日本片在线观看| 亚洲午夜精品国产|