精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

综合在线观看色| 青青草国产精品亚洲专区无| 亚洲黄色www| 日韩av资源在线| 第一页在线观看| 国产乱子伦一区二区三区国色天香| 色综合视频网站| 亚洲国产精品自拍视频| 成人天堂yy6080亚洲高清| 中文字幕一区二区三区在线不卡 | 欧洲亚洲一区二区三区四区五区| 中文字幕资源网| 一区二区黄色| 久久精品视频一| 女尊高h男高潮呻吟| 清纯唯美激情亚洲| 色吊一区二区三区| 日韩xxxx视频| 国产激情在线视频| 久久久91精品国产一区二区三区| 欧美成人a∨高清免费观看| 亚洲一区二区三区精品视频| 成人久久精品人妻一区二区三区| 老司机精品视频网站| 欧美国产日韩一区二区三区| 欧美亚洲第一页| 人妻精品无码一区二区三区 | 欧美午夜视频网站| 成人性教育视频在线观看| 毛片在线免费视频| 久久伦理中文字幕| 欧美午夜电影网| 欧美日韩在线一| 99福利在线| 国产精品色一区二区三区| 精品高清视频| 东京热一区二区三区四区| 欧美日韩伊人| 久久色免费在线视频| 国产91丝袜美女在线播放| 秋霞蜜臀av久久电影网免费| 精品国产3级a| 91亚洲一线产区二线产区| 成人免费网站视频| 精品美女永久免费视频| 国产aaa免费视频| 在线观看av免费| 亚洲麻豆国产自偷在线| 亚洲自拍偷拍一区二区三区| аⅴ资源新版在线天堂| 国产日韩高清在线| 日韩欧美精品在线不卡| 美丽的姑娘在线观看免费动漫| 91性感美女视频| 久久久久久久久久久久久久一区 | 好吊色这里只有精品| 中文字幕在线视频区| 国产亚洲欧美激情| 色综合视频二区偷拍在线| 国产毛片在线| 国产精品久久久久久久久久久免费看| 午夜免费电影一区在线观看| av网站在线免费播放| 国产精品沙发午睡系列990531| 翔田千里亚洲一二三区| 日本韩国在线视频爽| 亚洲欧洲三级电影| 精品国产一区二区三区在线| 97caopor国产在线视频| 亚洲自拍欧美精品| 久在线观看视频| 澳门成人av网| 欧美视频一区二区| 手机在线免费毛片| 成人在线tv视频| 日韩精品视频免费| 亚洲一级理论片| 亚洲人体av| 韩国精品美女www爽爽爽视频| 福利一区二区三区四区| 午夜视频成人| 亚洲天堂久久| 5566成人精品视频免费| 波多野结衣黄色| 韩日精品视频一区| 国产精品国产亚洲伊人久久| 国产精品玖玖玖| 成人毛片老司机大片| 美女被啪啪一区二区| av免费观看一区二区| 一级女性全黄久久生活片免费| 人人妻人人添人人爽欧美一区| 日韩电影免费观| 91麻豆精品国产91久久久使用方法| 四虎精品一区二区| 色综合天天爱| 97精品伊人久久久大香线蕉| 自拍偷拍校园春色| 国产精品自拍三区| 欧美午夜精品久久久久久蜜| 国产网站在线免费观看| 精品国产31久久久久久| 亚洲精品成人在线播放| 欧美大胆视频| 插插插亚洲综合网| 亚洲欧美偷拍视频| 国产成人啪免费观看软件| 免费看成人片| 国产真实乱人偷精品视频| 国产精品xvideos88| 日本亚洲欧美三级| 亚洲av综合色区无码一区爱av| 亚洲黄页一区| 日韩av中文字幕一区二区三区| 在线中文字幕日韩| av资源吧首页| 精品一区二区三区香蕉蜜桃| 精品福利影视| 日韩三级电影视频| 欧美午夜精品久久久久久浪潮 | 欧美mv和日韩mv的网站| 亚洲图片综合网| 四虎国产精品免费观看| 91av视频在线播放| 成 人片 黄 色 大 片| 国产偷国产偷精品高清尤物 | ts人妖另类在线| 亚洲国产成人无码av在线| 国产成人精品三级| 中文一区一区三区免费| 日韩视频网站在线观看| 精品无人国产偷自产在线| 欧美特级一级片| 毛片av中文字幕一区二区| 欧美一区亚洲二区| 无码小电影在线观看网站免费| 欧美大片在线观看| 国产高潮流白浆| 激情文学综合插| 在线不卡视频一区二区| 视频一区在线免费看| 亚洲女成人图区| 中文字幕免费在线观看视频| av电影在线观看一区| 成人一级生活片| www.豆豆成人网.com| 欧美高清激情视频| 性猛交富婆╳xxx乱大交天津| 亚洲天堂av一区| 成人不卡免费视频| 亚欧美无遮挡hd高清在线视频 | 日韩在线观看成人| 在线免费观看一级片| 国产精品亲子乱子伦xxxx裸| 亚洲成人av免费看| 日韩欧美三级| 成人黄色影片在线| 草莓福利社区在线| 日韩精品一区二| 日韩免费av片| 久久综合网色—综合色88| 无码aⅴ精品一区二区三区浪潮| 日韩aaa久久蜜桃av| 欧美在线一区二区视频| 免费看男男www网站入口在线| 色综合久久中文综合久久牛| 精品人伦一区二区三电影| 日本大胆欧美人术艺术动态 | 国产精品chinese| 99国产盗摄| 岛国av免费在线观看| 日韩黄色高清视频| 日韩黄色一级视频| 中文字幕人成不卡一区| www.偷拍.com| 亚洲小说欧美另类婷婷| 蜜桃91精品入口| 欧美一级做一级爱a做片性| 久久五月天综合| 色综合免费视频| 色婷婷久久久综合中文字幕| 任你操精品视频| 国产成人精品一区二区三区网站观看| 香港三级韩国三级日本三级| 禁断一区二区三区在线| 91亚洲国产成人精品性色| a级片免费在线观看| 亚洲人成在线观看网站高清| 日本午夜精品理论片a级app发布| 久久综合九色综合欧美98| xxww在线观看| 黄色av日韩| 日韩高清专区| 亚洲伊人影院| 国产精品久久不能| 免费在线播放电影| 在线日韩欧美视频| 亚洲第一页在线观看| 色又黄又爽网站www久久| 国产精品免费人成网站酒店| 91一区二区三区在线播放| 校园春色 亚洲色图| 人人视频精品| 亚洲激情中文字幕| 亚洲无码精品国产| 亚洲中国最大av网站| 国产又爽又黄无码无遮挡在线观看| 久久国产精品99国产| 五月天综合婷婷| 国产一区二区三区网| 久色婷婷小香蕉久久| 日韩人妻精品一区二区三区| 香蕉视频亚洲一级| 中文字幕国产日韩| 天天射天天操天天干| 久久综合中文字幕| 涩视频在线观看| 久久99国产乱子伦精品免费| 青青青国产在线观看| 亚洲欧美综合久久久| 亚洲成人自拍视频| 老司机精品视频在线播放| 91久久在线观看| 99久久婷婷国产综合精品首页| 国模私拍视频一区| 1区2区在线观看| 中文字幕一区二区精品| 亚洲三区在线播放| 亚洲变态欧美另类捆绑| 国产美女永久免费| 欧美日韩视频在线一区二区| 伦av综合一区| 五月天一区二区| 日韩精品成人在线| 亚洲午夜三级在线| 久久精品国产亚洲av高清色欲| 中文字幕五月欧美| 午夜国产福利视频| 国产精品乱码一区二区三区软件 | 在线播放成人av| 91传媒视频在线播放| 黄色片视频免费| 色视频欧美一区二区三区| 国产又粗又爽视频| 欧美午夜视频在线观看| 久久久久久久久久久影院 | 日本精品入口免费视频| 欧美午夜美女看片| 国产视频1区2区| 色成人在线视频| 国产91av在线播放| 欧美午夜电影网| 一级特黄aaa大片在线观看| 欧美日韩视频在线第一区 | 欧美三级华人主播| 国产免费播放一区二区| 日韩不卡av| 色偷偷综合网| 蜜臀在线免费观看| 在线观看一区视频| 国内性生活视频| 久久人人超碰| 五月婷婷之综合激情| 久久99深爱久久99精品| 日韩精品视频网址| 成人av午夜电影| 日本xxx在线播放| 国产偷国产偷精品高清尤物| 国产白丝一区二区三区 | 日韩国产精品毛片| 国产真实久久| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 丝袜脚交一区二区| 免费av不卡在线| 亚洲伊人网站| 最新中文字幕免费视频| 国产精品中文字幕日韩精品| 一级黄色片毛片| 国产拍揄自揄精品视频麻豆| 日本黄色录像视频| 亚洲第一激情av| 波多野结衣家庭主妇| 91精品国产91久久久久久一区二区 | 91在线网站视频| 成人在线超碰| 特级西西444www大精品视频| 一个色综合网| 91视频最新入口| 国产一区亚洲一区| 玖草视频在线观看| 日韩理论片网站| 欧美激情黑白配| 日韩一区二区影院| 日本啊v在线| 久热精品视频在线观看一区| 欧美亚洲日本精品| 亚洲精品日产aⅴ| 中文字幕精品影院| 欧美日韩视频免费| 日本不卡一二三区黄网| 色欲欲www成人网站| 国产午夜精品一区二区三区嫩草 | 亚洲1区2区3区4区| 在线观看毛片av| 国产丝袜精品视频| 免费污视频在线| 国产在线观看不卡| 特黄特色欧美大片| 亚洲天堂第一区| 轻轻草成人在线| 成人影视免费观看| 一级日本不卡的影视| 亚洲性生活大片| 精品视频在线播放免| 欧美videossex另类| 成人福利网站在线观看| 九九热线有精品视频99| 男人添女人下部视频免费| 美女在线观看视频一区二区| 亚洲成人av免费在线观看| 欧美一级专区| 久热精品在线播放| 久久这里只有精品视频网| 欧美日韩亚洲国产另类| 欧美男女性生活在线直播观看| 丰满少妇在线观看bd| 91福利在线观看| 日韩一级免费在线观看| 成人豆花视频| 日本一区视频在线观看免费| 99国产精品久久久久久久| 九九九久久久久久久| 国产精品二三区| 伊人网站在线观看| 欧美成人一级视频| av毛片在线播放| 91成人理论电影| 国产精品成人a在线观看| 日本a√在线观看| 国产午夜精品在线观看| 日本精品入口免费视频| 国产一区二区三区网站| 日韩在线短视频| 日韩一本精品| 免费一级欧美片在线观看| 极品久久久久久久| 在线免费观看一区| 98在线视频| 国产欧美一区二区三区在线看| 色中色综合网| 天天久久综合网| 亚洲免费观看高清完整版在线 | 欧美mv日韩mv国产网站| 牛牛精品在线视频| 国产综合第一页| 久久网站免费观看| 激情图片中文字幕| 亚洲精品少妇30p| 国产91久久久| 欧美在线影院在线视频| 国产成人久久| 午夜久久久精品| 亚洲色图一区二区三区| www.污视频| 韩国日本不卡在线| 要久久爱电视剧全集完整观看| chinese少妇国语对白| 国产精品毛片高清在线完整版| 国产又大又粗又硬| 欧美福利在线观看| 亚洲精品进入| 一个色综合久久| 亚洲一二三四在线| 免费国产在线视频| 成人激情视频小说免费下载| 欧美精品色网| 国产精品一区二区入口九绯色| 在线观看av一区| 深夜国产在线播放| 久久精品中文字幕一区二区三区| 欧美做暖暖视频| 久久精品男人天堂av| 国产毛片久久久久| 欧美又大又硬又粗bbbbb| 日韩久久久久| 91九色蝌蚪porny| 欧美视频你懂的| 大香伊人中文字幕精品| 亚洲 日韩 国产第一区| 国产白丝精品91爽爽久久| 国产精品熟女视频| 欧美日韩国产第一页| 欧美在线免费看视频| 亚洲av无码专区在线播放中文| 日韩欧美国产黄色| 91网址在线观看| 日本一区二区三区视频在线观看| 国产乱码精品1区2区3区| 无码aⅴ精品一区二区三区| 不用播放器成人网|