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

Java圖形界面開發:高級Swing容器(二)

開發 后端
在本文中,我們將會了解一些構建在這些布局管理器之上的容器以及其他的一些無需布局管理器的容器。詳細請看下文

11.3 JTabbedPane類

JTabbedPane類表示曾經流行的屬性頁來支持在一個窗口中多個容器的輸入或輸出,其中每次只顯示一個面板。使用JTabbedPane類似于使用CardLayout管理器,所不同的是添加到修改內建卡片的支持。然而CardLayout是一個LayoutManager,而JTabbedPane是一個完全功能的Container。如果我們不熟悉屬性頁,標簽對話框或是標簽面板(所有都是相同的事物的不同名字),圖11-10顯示了一個JDK 1.2版本所帶的原始SwingSet Demo中的標簽集合。


 

為了有助于JTabbedPane管理哪一個Component被選中,容器的模型是一個SingleSelectionModel接口的實現,或者更確切的說,是一個DefaultSingleSelectionModel實例。(SingleSelectionModel與DefaultSingleSelectionModel在第6章中進行了描述。)

11.3.1 創建JTabbedPane

JTabbedPane只有三個構造函數:

  1. public JTabbedPane()   
  2. JTabbedPane tabbedPane = new JTabbedPane();   
  3. public JTabbedPane(int tabPlacement)   
  4. JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.RIGHT);   
  5. public JTabbedPane(int tabPlacement, int tabLayoutPolicy)   
  6. JTabbedPane tabbedPane =   
  7. new JTabbedPane(JTabbedPane.RIGHT, JTabbedPane.SCROLL_TAB_LAYOUT);  

可配置的選項是用來修改顯示哪一個組件的標簽位置與當在一個虛擬行中有多個標簽時的標簽布局策略。默認情況下,標簽位于容器的頂部,并且標簽數量超過容器寬度時會進行回環形成多行。然而,我們可以使用JTabbedPane的下列常量之一來顯式的指定位置:TOP, BOTTOM, LEFT或RIGHT,或者是使用SCROLL_TAB_LAYOUT或WRAP_TAB_LAYOUT來配置布局策略。圖11-11使用其他三個標簽位置顯示了圖11-10的屏幕顯示。圖11-12顯示了帶有滾動標簽布局的屏幕。

 

11.3.2 添加與移除標簽

一旦我們創建了基本的JTabbedPane容器,我們需要添加構成JTabbedPane頁的面板。我們可以使用兩種基本方法來添加面板。

如果我們使用JBuilder或是Eclipse的可視化工具來創建我們的界面,用戶界面構建器將會使用我們所熟悉的Container的add()方法來添加Component。所添加的面板使用component.getName()作為默認標題。然而,如果我們手動編程我們不應使用各種add()方法。

添加組件或是面板來創建標簽更為合適的方法是使用下面列出的addTab()或是insertTab()方法。insertTab()方法中除了組件與位置索引以外,其他的參數可以為空。(傳遞null作為Component參數會在運行時拋出NullPointerException。)顯示的圖標與工具提示設置并沒有默認值。

  1. • public void addTab(String title, Component component)   
  2. • public void addTab(String title, Icon icon, Component component)   
  3. • public void addTab(String title, Icon icon, Component component, String tip)   
  4. • public void insertTab(String title, Icon icon, Component component, String tip,   
  5. int index)  

當使用addTab()時,標簽被添加到末尾,也就是對于頂部或是底部標簽集合來說是最右邊的位置,或是對于在左邊或右邊放置的標簽時位于底部,依據組件的方向,也可以是相反的一邊。
在創建面板之后,我們可以通過setXXXAt()方法修改一個特定標簽的標題,圖標,熱鍵,工具提示或是組件:

  1. • public void setTitleAt(int index, String title)   
  2. • public void setIconAt(int index, Icon icon)   
  3. • public void setMnemonicAt(int index, int mnemonic)   
  4. • public void setDisplayedMnemonicIndexAt(int index, int mnemonicIndex)   
  5. • public void setToolTipTextAt(int index, String text)   
  6. • public void setComponentAt(int index, Component component)  

提示,顯示的熱鍵索引指向標題中哪一個字符應高亮。例如,如果我們希望title中第二t高亮顯示熱鍵,我們可以使用setMnemonicAt()方法將熱鍵字符設置為KeyEvent.VK_T,并使用setDisplayedMnemonicIndexAt()將熱鍵索引設置為2。

另外,我們可以修改一個特定標簽的背景色或前景色,允許或是禁止一個特定的標簽,或是使用setXXXAt()方法設置不同的禁止圖標:

  1. • public void setBackgroundAt(int index, Color background)   
  2. • public void setForegroundAt(int index, Color foreground)   
  3. • public void setEnabledAt(int index, boolean enabled)   
  4. • public void setDisabledIconAt(int index, Icon disabledIcon)  

要移除一個標簽,我們可以使用removeTabAt(int index), remove(int index)或是remove(Component component)來移除一個特定的標簽。另外,我們可以使用removeAll()移除所有的標簽。

13.3.3 JTabbedPane屬性

表11-4顯示了JTabbedPane的11個屬性。因為JTabbedPane的許多setter/getter方法都指定了一個索引參數,事實上他們并不是真正的屬性。

我們可以通過selectedComponent或是selectedIndex屬性來編程修改顯示的標簽。

tabRunCount屬性表示顯示所有的標簽所必須的行數(對于頂部或底部標簽位置)或是列數(對于左邊或是右邊位置)。

注意,當要顯示容器時修改JTabbedPane的LayoutManager將會拋出異常。換句話說,不要那樣做。

11.3.4 監聽修改標簽選中

如果我們對確定何時選中的標簽變化感興趣,我們需要監聽選中模型的變化。這是通過我們將一個ChangeListener關聯到JTabbedPane(或是直接關聯到SingleSelectionModel)來實現的。注冊的ChangeListener報告何時選中模型發生變化,以及選中的面板變化時模型的變化。

顯示在列表11-3中的程序演示了監聽選中標簽的變化并且顯示了新選中標簽的標題。

  1. package swingstudy.ch11;   
  2.  
  3. import java.awt.BorderLayout;   
  4. import java.awt.Color;   
  5. import java.awt.EventQueue;   
  6. import java.awt.event.KeyEvent;   
  7.  
  8. import javax.swing.JButton;   
  9. import javax.swing.JFrame;   
  10. import javax.swing.JTabbedPane;   
  11. import javax.swing.event.ChangeEvent;   
  12. import javax.swing.event.ChangeListener;   
  13.  
  14. import swingstudy.ch04.DiamondIcon;   
  15.  
  16. public class TabSample {   
  17.  
  18. static Color colors[] = {Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.BLUE, Color.MAGENTA};   
  19. static void add(JTabbedPane tabbedPane, String label, int mnemonic) {   
  20. int count = tabbedPane.getTabCount();   
  21. JButton button = new JButton(label);   
  22. button.setBackground(colors[count]);   
  23. tabbedPane.addTab(label, new DiamondIcon(colors[count]), button, label);   
  24. tabbedPane.setMnemonicAt(count, mnemonic);   
  25. }   
  26. /**   
  27. * @param args   
  28. */   
  29. public static void main(String[] args) {   
  30. // TODO Auto-generated method stub   
  31.  
  32. Runnable runner = new Runnable() {   
  33. public void run() {   
  34. JFrame frame = new JFrame("Tabbed Pane Sample");   
  35. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
  36.  
  37. JTabbedPane tabbedPane = new JTabbedPane();   
  38. tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);   
  39. String titles[] = {"General""Security""Content""Connection""Programs""Advanced"};   
  40. int mnemonics[] = {KeyEvent.VK_G, KeyEvent.VK_S, KeyEvent.VK_C, KeyEvent.VK_0, KeyEvent.VK_P, KeyEvent.VK_A};   
  41. for(int i=0, n=titles.length; i<n; i++) {   
  42. add(tabbedPane, titles[i], mnemonics[i]);   
  43. }   
  44.  
  45. ChangeListener changeListener = new ChangeListener() {   
  46. public void stateChanged(ChangeEvent event) {   
  47. JTabbedPane sourceTabbedPane = (JTabbedPane)event.getSource();   
  48. int index = sourceTabbedPane.getSelectedIndex();   
  49. System.out.println("Tab changed to: "+sourceTabbedPane.getTitleAt(index));   
  50. }   
  51. };   
  52. tabbedPane.addChangeListener(changeListener);   
  53.  
  54. frame.add(tabbedPane, BorderLayout.CENTER);   
  55. frame.setSize(400150);   
  56. frame.setVisible(true);   
  57. }   
  58. };   
  59. EventQueue.invokeLater(runner);   
  60. }   
  61.  
  62. }   

11.3.5 自定義JTabbedPane觀感

每一個可安裝的Swing觀感都提供了不同的JTabbedPane外觀以及JTabbedPane組件的默認UIResource值集合。圖11-13顯示了JTabbedPane容器在預安裝的觀感類型Motif,Windows以及Ocean下的外觀。某些項目是特定觀感的:當可用的標簽集合對于顯示過度時JTabbedPane如何顯示,當用戶在后一行選擇標簽時如何響應,如何顯示工具提示,以及如何顯示滾動標簽布局。

JTabbedPane可用的UIResource相關的屬性集合顯示在表11-5中。對于JTabbedPane組件,有34個不同的屬性。

#p#

 

11.4 JScrollPane類

Swing的JScrollPane容器通過滾動支持(如果需要)來使得當前部分不可見從而為在較小的顯示區域內顯示大組件提供支持。圖11-4顯示了一個實現,其中大組件是一個具有ImageIcon的JLabel。

可以使用兩種方示來標識要滾動的組件。我們不需要將要滾動的組件直接添加到JScrollPane容器中,我們可以將組件添加到已經包含在滾動面板中的另一個組件,JViewport。相對應的,我們可以通過將其傳遞給構造函數,在構造時標識組件。

  1. Icon icon = new ImageIcon("dog.jpg");   
  2. JLabel label = new JLabel(icon);   
  3. JScrollPane jScrollPane = new JScrollPane();   
  4. jScrollPane.setViewportView(label);   
  5. // or   
  6. JScrollPane jScrollPane2 = new JScrollPane(label);  

一旦我們將組件添加到JScrollPane中,用戶可以使用滾動條來查看在JScrollPane的內部區域不可見的大組件部分。

除了為我們提供了設置JScrollPane可滾動組件的方法,顯示策略可以決定是否以及何時在JScrollPane周圍顯示滾動條。Swing的JScrollPane為水平以及垂直滾動條維度了單獨的顯示策略。

除了使得我們為滾動添加JViewport以及兩個JScrollBar組件以外,JScrollPane同時允許我們提供另外兩個JViewport對象用于行與列頭以及在滾動面板四個角中顯示的四個Component對象。這些組件的放置是通過在第10章介紹進行全面描述的ScrollPaneLayout管理器來管理的。JScrollPane實現所用的JScrollBar組件是一個名為JScrollPane.ScrollBar的JScrollBar子類。他們被用來替換通常的JScrollBar,從而在組件實現了Scrollable接口時正確處理JViewport中的滾動組件。

為了幫助我們理解這些組件如何放置在JScrollPane中,圖11-15演示了ScrollPaneLayout如何放置各種對象。

注意,JScrollPane組件只支持輕量級組件的滾動。我們不應該向容器添加通常的,重量級AWT組件。

11.4.1 創建JScrollPane

JScrollPane有四個構造函數:

  1. public JScrollPane()   
  2. JScrollPane scrollPane = new JScrollPane();   
  3. public JScrollPane(Component view)   
  4. Icon icon = new ImageIcon("largeImage.jpg");   
  5. JLabel imageLabel = new JLabel(icon);   
  6. JScrollPane scrollPane = new JScrollPane(imageLabel);   
  7. public JScrollPane(int verticalScrollBarPolicy, int horizontalScrollBarPolicy)   
  8. JScrollPane scrollPane = new   
  9. JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,   
  10. JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);   
  11. public JScrollPane(Component view, int verticalScrollBarPolicy,   
  12. int horizontalScrollBarPolicy)   
  13. JScrollPane scrollPane = new JScrollPane(imageLabel,   
  14. JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,   
  15. JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);  

這些構造函數提供了預安裝滾動組件以及配置單獨滾動條滾動策略的選項。默認情況下,滾動條只在需要的時候顯示。表11-16顯示了用來為每一個滾動條顯示設置策略的JScrollPane常量。使用其他不正確的設置會導致拋出IllegalArgumentException。

下面的章節將會解釋如何在創建JScrollPane之后添加或修改組件。

11.4.2 修改Viewport View

如果我們使用合適的組件創建JScrollPane,我們只需要添加JScrollPane來顯示。然而,如果我們并沒有在創建時關聯組件,或者是希望在稍后進行修改,有兩種方法可以為滾動關聯一個新的組件。首先,我們可以通過設置viewportView屬性直接修改組件:

  1. scrollPane.setViewportView(dogLabel);  

修改滾動組件另一種方法就是將JViewport放在JScrollPane的中間,然后修改其view屬性:

  1. scrollPane.getViewport().setView(dogLabel);  

我們將會在本章稍后的“JViewport類”一節中了解到更多關于JViewport組件的內容。

11.4.3 Scrollable接口

不同于AWT組件,例如List會在一次顯示的選項過多時自動提供可滾動區域,Swing組件JList,JTable,JTextComponent,以及JTree并不會自動提供滾動支持。我們必須創建組件,將其添加到JScrollPane,然后將滾動面板添加到屏幕。

  1. JList list = new JList(...);   
  2. JScrollPane scrollPane = new JScrollPane(list);   
  3. aFrame.add(scrollPane, BorderLayout.CENTER);  

將組件添加到JScrollPane起作用的原因在于每一個也許對于屏幕過大的Swing組件(并且需要滾動支持)實現了Scrollable接口。通過實現這個接口,當我們移動與JScrollPane相關聯的滾動條時,JScrollPane會查詢容器內Scrollable組件的尺寸信息從而基于當前的滾動條位置正確的定位組件。

我們唯一需要擔心Scrollable接口的時機就是當我們創建一個需要滾動支持的自定義組件的時候。下面是Scrollable接口的定義。

  1. public interface Scrollable {   
  2. public Dimension getPreferredScrollableViewportSize();   
  3. public boolean getScrollableTracksViewportHeight();   
  4. public boolean getScrollableTracksViewportWidth();   
  5. public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation,   
  6. int direction);   
  7. public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation,   
  8. int direction);   
  9. }  

如果我們創建一個自定義的Scrollable組件,然后將放在JScrollPane中,當JScrollPane的滾動條或是鼠標滾輪移動時,他就會正確的響應。

11.4.4 JScrollPane屬性

表11-7顯示了JScrollPane的19個屬性。

 

嘗試著JScrollPane的布局屬性修改為除了ScrollPaneLayout以外的值或是null將會在運行時拋出ClassCastException,因為JScrollPane所用的布局管理器必須為ScrollPaneLayout。

使用ScrollPaneLayout JScrollPane依賴ScrollPaneLayout管理器對容器內的組件進行放置。然而大多數的布局管理器被設置用來布局所有的組件類型,但是ScrollPaneLayout的四個區域只接受特定類型的組件。表11-8顯示了可以放置在圖11-15中所示區域中顯示的組件類型。

注意,區域角有兩個常量集合。對于國際化支持,我們可以使用LOWER_LEADING_CORNER, LOWER_TRAILING_CORNER, UPPER_LEADING_CORNER與UPPER_TRAILING_CORNER,這些常量可以為我們處理組件方向。對于由左到右的組件方向,起始是左邊,而結束是右邊。

正如設計要求,布局管理器描述支持對于可用空間過大的主內容區域(VIEWPORT)所必須的屏幕布局。用于在區域中瀏覽的滾動條可以被設置在內容區域的右邊(VERTICAL_SCROLLABAR)或是下邊(HORIZONTAL_SCROLLBAR)。不滾動的固定頭可以被放置在內容區域的上部(COLUMN_HEADER)或是其左邊(ROW_HEADER)。四個角(*_CORNER)可以配置來顯示任意的組件類型,通常是帶有圖片的標簽;然則 ,在其中可以放置任意的組件。

注意,一些開發者會認為ScrollPaneLayout是一個帶有自定義約束的GridBagLayout。在通常情況下,大多數開發者并不會在JScrollPane之外使用ScrollPaneLayout。

使用JScrollPane頭與角

如圖11-15與表11-8所示,在JScrollPane存在多個不同的區域。通常,我們只使用中間的視圖,并使用兩個滾動條完成相應的任務。另外,當使用JTable組件時,當放置在JScrollPane中時,表會自動將列頭放置在列頭區域。

我們也可以手動添加或是修改JScrollPane的列頭或是行頭。盡管我們可以在這里區域完全替換JViewport,但是為此區域中的Component設置columnHeaderView或是rowHeaderView屬性更為簡單。這一操作可以為我們將組件放置在JViewport中。

要將組件放置在JScrollPane的一個角中,我們需要調用setCorner(String key, Component corner)方法,其中key是JScrollPane中的下列常量之一:LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, UPPER_LEFT_CORNER,或是UPPER_RIGHT_CORNER。

角區域的使用比較有技巧。只有當兩個位于角落右邊角的組件是當前顯示時,角落組件才會被顯示。例如,假如我們要在右下角落放置一個具有公司logo的標簽,而兩個滾動條的滾動策略只有在必需的時才會顯示。在這種情況下,如果一個滾動條不需要,角落中的logo也不會被顯示。作為另一個盒子,如果一個JScrollPane具有一個列頭顯示,但是并沒有行頭,左上角中的組件也不會被顯示。

所以,僅僅因為我們將角落設置為一個組件(例如scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, logLabel)),不要期望組件總是或是自動顯示。而且,如圖11-16所示,相鄰的區域控制角落的尺寸。不要認為角落組件會按需要大小顯示。這是因為其最小尺寸,最優尺寸與最大尺寸被完全被忽略了。在圖11-16中,用來創建角落組件的實際圖片要大于所用的空間。

注意,修改JScrollPane的一個角落類似于邊界屬性,其中屬性名是表11-8中所列的角落鍵值。

重設視圖域位置

有時,我們也許會希望將內部視圖的內容向JScrollPane的左上角移動。這種變化也許是需要的,因為視圖發生了變化,或者是某些事情的發生要求視圖域組件返回到JScrollPane的原始位置。移動視圖最簡單的方法就是JScrollPane的滾動條位置。將每一個滾動條設置為其最小值就有效的將組件視圖移動到了組件的左上角區域。列表11-4中所顯示的ActionListener可以關聯到屏幕中的按鈕或是JScrollPane的角落,從而使得JScrollPane的內容返回到原始位置。

  1. package swingstudy.ch11;  
  2.    
  3. import java.awt.event.ActionEvent;  
  4. import java.awt.event.ActionListener;  
  5.    
  6. import javax.swing.JScrollBar;  
  7. import javax.swing.JScrollPane;  
  8.    
  9. public class JScrollPaneToTopAction implements ActionListener {  
  10.    
  11.     JScrollPane scrollPane;  
  12.    
  13.     public JScrollPaneToTopAction(JScrollPane scrollPane) {  
  14.         if(scrollPane == null) {  
  15.             throw new IllegalArgumentException("JScrollPaneToTopAction: null JScrollPane");  
  16.         }  
  17.         this.scrollPane = scrollPane;  
  18.     }  
  19.     @Override 
  20.     public void actionPerformed(ActionEvent event) {  
  21.         // TODO Auto-generated method stub  
  22.         JScrollBar verticalScrollBar = scrollPane.getVerticalScrollBar();  
  23.         JScrollBar horizontalScrollBar = scrollPane.getHorizontalScrollBar();  
  24.         verticalScrollBar.setValue(verticalScrollBar.getMinimum());  
  25.         horizontalScrollBar.setValue(horizontalScrollBar.getMinimum());  
  26.     }  
  27.    

11.4.5 自定義JScrollPane觀感

每一個可安裝的觀感都提供了不同的JScrollPane外觀以及默認的組件UIResource值集合。圖11-17顯示了JScrollPane組件在預安裝的觀感類型集合下的外觀顯示。對于JScrollPane,觀感類型之間的主要區別與滾動條的外觀以及視圖周圍的邊框有關。

表11-9顯示了JScrollPane可用的UIResource相關屬性集合。對于JScrollPane組件,有十個不同的屬性。當滾動條在JScrollPane內可見時,修改與JScrollBar的相關屬性會影響其外觀。

原文鏈接:http://blog.csdn.net/mylxiaoyi/article/details/7487167

責任編輯:林師授 來源: mylxiaoyi的博客
相關推薦

2012-04-24 09:40:42

SwingJava

2012-04-28 10:25:11

JavaSwing

2011-07-28 17:40:04

MySQLMySQL Workb

2010-11-25 09:05:53

MonoDevelop

2012-01-16 11:03:09

javaswing

2011-10-11 13:22:55

FreeBSD

2010-03-03 17:50:45

Android圖形界面

2016-10-28 08:57:56

Git圖形界面

2011-02-22 18:09:08

2009-05-26 15:22:14

Linux圖形備份

2009-09-10 10:02:18

VxWorksLinux圖形界面Linux

2011-09-06 15:10:20

Ubuntu圖形界面

2021-02-04 11:08:00

LinuxSSH工具

2021-11-08 08:14:50

Python圖形界面框架

2010-01-07 10:04:49

Ubuntu圖形

2012-04-19 13:21:02

Javaswing

2024-12-23 14:54:47

2019-02-21 19:00:49

LinuxSSH圖形界面工具

2009-10-13 14:44:02

圖形界面linuxunix

2009-03-06 15:12:24

LinuxUbuntuPrefixSuffi
點贊
收藏

51CTO技術棧公眾號

av在线播放一区| 姝姝窝人体www聚色窝| 欧美3p视频| 制服丝袜av成人在线看| 97免费视频观看| 久久精品蜜桃| 国产一区二区三区美女| 66m—66摸成人免费视频| 天天干天天舔天天操| 国语精品视频| 欧美性猛交xxxx乱大交| 国产高潮呻吟久久久| 手机福利小视频在线播放| 久久精品国产久精国产爱| 欧美疯狂性受xxxxx另类| 88久久精品无码一区二区毛片| 亚洲视频资源| 色哟哟亚洲精品| 欧美一区二区激情| 青青青青在线| 国产喷白浆一区二区三区| 91丝袜脚交足在线播放| 91久久国产综合久久91| 亚洲国产影院| 久久久精品网站| www.av天天| 精品亚洲精品| 日韩欧美精品三级| 国产亚洲视频一区| 欧美va在线观看| 精品欧美aⅴ在线网站| 黄色网在线视频| 免费黄网在线观看| 久久人人爽爽爽人久久久| 高清视频一区二区三区| 91麻豆一区二区| 日韩国产在线一| 欧美中文字幕在线观看| 精品无码一区二区三区电影桃花| 91精品国产乱码久久久久久久| 亚洲欧洲高清在线| 好吊日免费视频| 欧美亚洲色图校园春色| 精品va天堂亚洲国产| 极品人妻一区二区| 国产精品亚洲欧美日韩一区在线| 欧美日韩第一区日日骚| 成人黄色一区二区| 国产精品高清乱码在线观看| 色综合久久中文综合久久牛| 免费无码av片在线观看| 亚洲一级少妇| 色综合久久久久综合| 欧美色图另类小说| 亚洲女色av| 欧美性xxxx| 午夜精品久久久内射近拍高清| 国产在线看片免费视频在线观看| 性做久久久久久| 九色自拍视频在线观看| av免费不卡国产观看| 一区二区三区在线观看动漫| av 日韩 人妻 黑人 综合 无码| 污污的网站在线看| 亚洲午夜精品17c| 国精产品一区一区三区视频| 蜜臀久久精品| 色8久久人人97超碰香蕉987| 国产情侣av自拍| 成人黄色毛片| 欧美日韩日日骚| 亚洲第一成肉网| 视频一区视频二区欧美| 欧美精品一区二区三区蜜桃| 黄色av网址在线观看| 日本天堂一区| 中文字幕视频在线免费欧美日韩综合在线看 | 欧洲精品99毛片免费高清观看| 日韩免费一区二区三区在线播放| 无码人妻久久一区二区三区蜜桃| 久久综合五月婷婷| 亚洲一区二区国产| 九九热视频在线免费观看| 欧美欧美全黄| 青青久久av北条麻妃黑人| 一级黄色大片免费| 国产成人精品一区二区三区网站观看| 国产日韩精品推荐| 国产小视频在线| 国产精品久久久久久久岛一牛影视| 在线观看三级网站| 偷拍自拍在线看| 欧美狂野另类xxxxoooo| 中文成人无字幕乱码精品区| 俺要去色综合狠狠| 欧美激情亚洲综合一区| 一级特黄免费视频| 国产黄色精品网站| 日本一区二区三区免费看 | 97精品国产91久久久久久| 无码人妻av一区二区三区波多野| 国内精品免费**视频| 久久久亚洲综合网站| 欧美成人精品一区二区男人看| 亚洲综合免费观看高清完整版在线| 青青草原av在线播放| 中文字幕成人| 亚洲一二在线观看| 日本a在线观看| 精品一区二区三区欧美| 精品一区二区国产| 手机av免费在线| 欧美色手机在线观看| 污污内射在线观看一区二区少妇| 日韩国产欧美| 日韩av成人在线观看| 亚洲男人天堂久久| 亚洲人亚洲人成电影网站色| 久久久久狠狠高潮亚洲精品| 国产精品天天看天天狠| 日韩中文字幕视频在线| 丰满少妇xoxoxo视频| 成人毛片视频在线观看| 日本xxx免费| 久久久加勒比| 亚洲天堂网站在线观看视频| 日韩高清精品免费观看| 国产精品99久久久久久似苏梦涵 | 欧美性受xxxx黑人xyx性爽| 亚洲婷婷在线观看| 欧美婷婷在线| 91福利入口| 黄色大片在线播放| 欧美久久一区二区| 国产精品视频在| 久久精品综合| 欧美一进一出视频| 人人草在线视频| 日韩毛片在线看| av资源免费观看| 91色视频在线| 女人喷潮完整视频| 亚州av一区| 日本一区二区在线免费播放| 手机在线观看毛片| 黑人欧美xxxx| 亚洲一级中文字幕| 视频一区中文字幕| 亚洲免费精品视频| 亚洲色图图片| 欧美精品手机在线| 亚洲精品视频专区| 亚洲超碰精品一区二区| 成年人的黄色片| 国产日韩欧美三区| 快播亚洲色图| 日韩欧美一区二区三区免费观看 | 三级一区在线视频先锋 | 在线精品小视频| 91青青草免费观看| www.51av欧美视频| 亚洲精选中文字幕| 亚洲精品久久久久久久蜜桃| 国产色爱av资源综合区| 久久婷婷综合色| 亚洲五月综合| 国产精品日韩欧美一区二区| 九色porny丨入口在线| 亚洲视频一区二区三区| 一卡二卡三卡在线| 亚洲制服丝袜一区| 久久精品国产亚洲av久| 蜜桃在线一区二区三区| 奇米777四色影视在线看| 欧美激情影院| 国产精品色悠悠| 在线h片观看| 亚洲全黄一级网站| 国产精品女人久久久| 亚洲一级二级在线| 51妺嘿嘿午夜福利| 国产成人一区在线| 丰满人妻中伦妇伦精品app| 99久久久久| 国产乱子伦精品| 欧美日韩va| 97在线视频一区| 最新国产在线观看| 亚洲第一天堂av| 在线观看中文字幕2021| 亚洲一区二区三区中文字幕| 一区二区精品免费| 高清在线不卡av| 青青青在线视频免费观看| 女人天堂亚洲aⅴ在线观看| 另类小说综合网| 精品一区二区三区四区五区| 欧美怡红院视频一区二区三区| 麻豆影院在线| 亚洲日韩欧美视频一区| www.狠狠干| 欧美蜜桃一区二区三区| 天天操夜夜操视频| 亚洲乱码中文字幕| 免费看91的网站| 99国产精品视频免费观看| 91蝌蚪视频在线| 免费不卡在线观看| 精品国产免费av| 欧美视频不卡| 手机看片日韩国产| 精品美女久久久| 黄色一区三区| 一区二区三区亚洲变态调教大结局 | 国产一区二区视频在线观看免费| 久久夜色精品国产噜噜av| 久草福利在线观看| 麻豆国产精品视频| 国产视频一区二区视频| av成人天堂| 免费看毛片的网址| 欧美激情成人在线| 一区二区三区日韩视频| 精品一区二区三区的国产在线观看| 国产福利不卡| 免费精品一区| 91在线观看免费高清| 本网站久久精品| 国产精品ⅴa在线观看h| 日韩影院在线| 欧美在线观看网址综合| 国产美女一区视频| 欧美夫妻性视频| 色呦呦在线观看视频| 久久99视频免费| 成人高清免费在线| 欧美成人网在线| 羞羞的视频在线观看| 久久久精品一区| 在线看三级电影| 草民午夜欧美限制a级福利片| 麻豆电影在线播放| 亚洲日韩成人| 欧美日韩免费观看一区三区| 日本少妇毛茸茸高潮| 亚洲一区二区三区四区的| 美女的奶胸大爽爽大片| 亚洲精品欧美二区三区中文字幕| 又色又爽的视频| 中文字幕一区av| 久久久久亚洲av片无码| 亚洲视频 欧洲视频| 日韩成人毛片视频| 亚洲国产视频一区| 精品少妇久久久| 天天av天天翘天天综合网色鬼国产 | 亚洲欧美偷拍另类a∨色屁股| 国产成人精品视频免费| 中文字幕视频一区| 欧美日韩免费做爰视频| 午夜亚洲福利老司机| aaa人片在线| 欧美亚洲国产怡红院影院| 91tv国产成人福利| 日韩欧美国产一区在线观看| 成人免费公开视频| 日韩国产高清污视频在线观看| 日本人妖在线| 最近2019年中文视频免费在线观看| 在线免费观看黄色| 欧美成人免费va影院高清| 国产中文在线播放| 国产精品免费福利| 视频二区欧美毛片免费观看| 久久久久久艹| 欧美a级成人淫片免费看| 国产精品一色哟哟| 日韩专区欧美专区| www.色.com| 久久久久久免费网| 欧美日韩色视频| 欧美日韩国产综合新一区| 免费在线不卡av| 日韩欧美国产综合在线一区二区三区 | 是的av在线| 成人性教育视频在线观看| 超碰cao国产精品一区二区| 欧美重口乱码一区二区| 欧美不卡视频| 成年人在线观看视频免费| 国产成人精品亚洲777人妖| 国产麻豆天美果冻无码视频| 亚洲欧美综合另类在线卡通| 日韩av在线电影| 91精品国产综合久久精品| 天堂资源最新在线| 久久99精品久久久久久噜噜| 黑人巨大精品| 成人羞羞视频免费| 日本成人小视频| 日本www在线视频| 久久国产精品一区二区| 亚洲精品在线视频免费观看| 自拍偷自拍亚洲精品播放| 黄色片视频免费| 欧美精品一区二区三区高清aⅴ| 天天在线视频色| 国产suv精品一区二区三区88区| 日韩在线观看一区二区三区| 亚洲成人网上| 亚洲综合另类| 97人妻精品一区二区三区免费| 在线电影一区二区| 五月天精品一区二区三区| 亚洲free性xxxx护士hd| 麻豆一区产品精品蜜桃的特点| 天堂va欧美ⅴa亚洲va一国产| 国产一区日韩二区欧美三区| 欧美极品少妇全裸体| 欧美卡一卡二| 国产精品视频不卡| 久操成人av| 97视频久久久| 国产suv精品一区二区三区| 97精品在线播放| 欧美午夜精品电影| 欧美日韩伦理片| 中文字幕亚洲成人| 分分操这里只有精品| 激情六月婷婷综合| 少妇愉情理伦三级| 在线观看日产精品| 久草在线青青草| 欧美一区在线直播| 日韩mv欧美mv国产网站| 欧美激情视频免费看| 成人精品免费看| 久草视频手机在线观看| 日韩亚洲欧美综合| 自拍亚洲图区| 97人人模人人爽人人喊38tv| 午夜久久黄色| 无码国产精品一区二区免费式直播| 亚洲柠檬福利资源导航| 国产男男gay体育生白袜| 久久久极品av| 亚洲无线观看| 男女私大尺度视频| 99视频精品全部免费在线| 国产在线精品观看| 日韩激情av在线播放| 成人欧美一区二区三区的电影| 欧美日韩大片一区二区三区 | 久久久精品国产99久久精品芒果| 成年免费在线观看| 亚洲跨种族黑人xxx| 欧美无毛视频| 一本久道久久综合狠狠爱亚洲精品| 男人的天堂久久精品| 小嫩苞一区二区三区| 日韩午夜激情电影| 大桥未久在线视频| 欧日韩一区二区三区| 蜜桃精品视频在线| 破处女黄色一级片| 精品国产一二三区| 毛片无码国产| 一区二区三区四区视频在线| 国产精品综合二区| 日韩 欧美 亚洲| 国产一区二区三区精品久久久| 日本久久一区| 欧美中日韩在线| 久久精品综合网| 国产又粗又猛又爽又黄的| 欧美精品videossex88| 亚洲最大在线| 一卡二卡三卡四卡五卡| 精品国产鲁一鲁一区二区张丽 | 亚洲影视资源网| 日韩有码电影| 91亚洲精品在线观看| 激情久久一区| 美国美女黄色片| 精品日韩在线一区| 成人做爰视频www网站小优视频| 中文字幕欧美日韩一区二区三区 | 亚洲国产精品久久久久久女王| 国产呦萝稀缺另类资源| 日韩人妻无码一区二区三区99| 国产亚洲精品美女久久久| 激情综合五月| 欧美黑人又粗又大又爽免费| 亚洲美女屁股眼交| аⅴ资源新版在线天堂| 国产精品一区二区三区在线观| 美女爽到高潮91| 国语对白永久免费| 欧美人交a欧美精品| 日韩精品一区二区三区免费观影|