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

Java Swing編程:JTable表格

開發 后端
表格是GUI編程中使用較多,但也是最麻煩的一個控件之一。表格是用來顯示二維數據,提供編輯,選擇等功能。如果只是顯示數據,這還是非常easy的,只要在JTable中傳入二維數組或集合就可以了。

表格是GUI編程中使用較多,但也是最麻煩的一個控件之一。表格是用來顯示二維數據,提供編輯,選擇等功能。如果只是顯示數據,這還是非常easy的,只要在JTable中傳入二維數組或集合就可以了,eg

  1. public class SimpleTable  
  2. {  
  3.     JFrame jf = new JFrame("簡單表格");  
  4.     JTable table;  
  5.     //定義二維數組作為表格數據  
  6.     Object[][] tableData =   
  7.     {  
  8.         new Object[]{"李清照" , 29 , "女"},  
  9.         new Object[]{"蘇格拉底"56 , "男"},  
  10.         new Object[]{"李白"35 , "男"},  
  11.         new Object[]{"弄玉"18 , "女"},  
  12.         new Object[]{"虎頭" , 2 , "男"}  
  13.     };  
  14.     //定義一維數據作為列標題  
  15.     Object[] columnTitle = {"姓名" , "年齡" , "性別"};  
  16.     public void init()  
  17.     {  
  18.         //以二維數組和一維數組來創建一個JTable對象  
  19.         table = new JTable(tableData , columnTitle);  
  20.         //將JTable對象放在JScrollPane中,并將該JScrollPane放在窗口中顯示出來  
  21.         jf.add(new JScrollPane(table));  
  22.         jf.pack();  
  23.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  24.         jf.setVisible(true);  
  25.     }  
  26.     public static void main(String[] args)   
  27.     {  
  28.         new SimpleTable().init();  
  29.     }  
  30. }  

下面舉個JTable表格調整和選擇方式的例子,eg

  1. public class AdjustingWidth  
  2. {  
  3.     JFrame jf = new JFrame("調整表格列寬");  
  4.     JMenuBar menuBar = new JMenuBar();  
  5.     JMenu adjustModeMenu = new JMenu("調整方式");  
  6.     JMenu selectUnitMenu = new JMenu("選擇單元");  
  7.     JMenu selectModeMenu = new JMenu("選擇方式");  
  8.  
  9.     //定義5個單選框按鈕,用以控制表格的寬度調整方式  
  10.     JRadioButtonMenuItem[] adjustModesItem = new JRadioButtonMenuItem[5];  
  11.     //定義3個單選框按鈕,用以控制表格的選擇方式  
  12.     JRadioButtonMenuItem[] selectModesItem = new JRadioButtonMenuItem[3];  
  13.  
  14.     JCheckBoxMenuItem rowsItem = new JCheckBoxMenuItem("選擇行");  
  15.     JCheckBoxMenuItem columnsItem = new JCheckBoxMenuItem("選擇列");  
  16.     JCheckBoxMenuItem cellsItem = new JCheckBoxMenuItem("選擇單元格");  
  17.     ButtonGroup adjustBg = new ButtonGroup();  
  18.     ButtonGroup selectBg = new ButtonGroup();  
  19.     //定義一個int類型的數組,用于保存表格所有的寬度調整方式  
  20.     int[] adjustModes = new int[]{  
  21.         JTable.AUTO_RESIZE_OFF,  
  22.         JTable.AUTO_RESIZE_NEXT_COLUMN,  
  23.         JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS,  
  24.         JTable.AUTO_RESIZE_LAST_COLUMN,  
  25.         JTable.AUTO_RESIZE_ALL_COLUMNS   
  26.     };  
  27.     int[] selectModes = new int[]{  
  28.         ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ,  
  29.         ListSelectionModel.SINGLE_INTERVAL_SELECTION ,  
  30.         ListSelectionModel.SINGLE_SELECTION  
  31.     };  
  32.     JTable table;  
  33.     //定義二維數組作為表格數據  
  34.     Object[][] tableData =   
  35.     {  
  36.         new Object[]{"李清照" , 29 , "女"},  
  37.         new Object[]{"蘇格拉底"56 , "男"},  
  38.         new Object[]{"李白"35 , "男"},  
  39.         new Object[]{"弄玉"18 , "女"},  
  40.         new Object[]{"虎頭" , 2 , "男"}  
  41.     };  
  42.     //定義一維數據作為列標題  
  43.     Object[] columnTitle = {"姓名" , "年齡" , "性別"};  
  44.  
  45.     public void init()  
  46.     {  
  47.         //以二維數組和一維數組來創建一個JTable對象  
  48.         table = new JTable(tableData , columnTitle);  
  49.  
  50.         //-----------為窗口安裝設置表格調整方式的菜單-----------  
  51.         adjustModesItem[0] = new JRadioButtonMenuItem("只調整表格");  
  52.         adjustModesItem[1] = new JRadioButtonMenuItem("只調整下一列");  
  53.         adjustModesItem[2] = new JRadioButtonMenuItem("平均調整余下列");  
  54.         adjustModesItem[3] = new JRadioButtonMenuItem("只調整最后一列");  
  55.         adjustModesItem[4] = new JRadioButtonMenuItem("平均調整所有列");  
  56.         menuBar.add(adjustModeMenu);  
  57.         for (int i = 0; i < adjustModesItem.length ; i++)  
  58.         {  
  59.             //默認選中第三個菜單項,即對應表格默認的寬度調整方式  
  60.             if (i == 2)  
  61.             {  
  62.                 adjustModesItem[i].setSelected(true);  
  63.             }  
  64.             adjustBg.add(adjustModesItem[i]);  
  65.             adjustModeMenu.add(adjustModesItem[i]);  
  66.             final int index = i;  
  67.             //為設置調整方式的菜單項添加監聽器  
  68.             adjustModesItem[i].addActionListener(new ActionListener()  
  69.             {  
  70.                 public void actionPerformed(ActionEvent evt)  
  71.                 {  
  72.                     //如果當前菜單項處于選中狀態,表格使用對應的調整方式  
  73.                     if (adjustModesItem[index].isSelected())  
  74.                     {  
  75.                         table.setAutoResizeMode(adjustModes[index]);  
  76.                     }  
  77.                 }  
  78.             });  
  79.         }  
  80.         //-----------為窗口安裝設置表格選擇方式的菜單-----------  
  81.         selectModesItem[0] = new JRadioButtonMenuItem("無限制");  
  82.         selectModesItem[1] = new JRadioButtonMenuItem("單獨的連續區");  
  83.         selectModesItem[2] = new JRadioButtonMenuItem("單選");  
  84.         menuBar.add(selectModeMenu);  
  85.         for (int i = 0; i < selectModesItem.length ; i++)  
  86.         {  
  87.             //默認選中第一個菜單項,即對應表格默認的選擇方式  
  88.             if (i == 0)  
  89.             {  
  90.                 selectModesItem[i].setSelected(true);  
  91.             }  
  92.             selectBg.add(selectModesItem[i]);  
  93.             selectModeMenu.add(selectModesItem[i]);  
  94.             final int index = i;  
  95.             //為設置選擇方式的菜單項添加監聽器  
  96.             selectModesItem[i].addActionListener(new ActionListener()  
  97.             {  
  98.                 public void actionPerformed(ActionEvent evt)  
  99.                 {  
  100.                     //如果當前菜單項處于選中狀態,表格使用對應的選擇方式  
  101.                     if (selectModesItem[index].isSelected())  
  102.                     {  
  103.                         table.getSelectionModel().setSelectionMode(selectModes[index]);  
  104.                     }  
  105.                 }  
  106.             });  
  107.         }  
  108.         menuBar.add(selectUnitMenu);  
  109.         //-----------為窗口安裝設置表格選擇單元的菜單-----------  
  110.         rowsItem.setSelected(table.getRowSelectionAllowed());  
  111.         columnsItem.setSelected(table.getColumnSelectionAllowed());  
  112.         cellsItem.setSelected(table.getCellSelectionEnabled());  
  113.  
  114.         rowsItem.addActionListener(new ActionListener()  
  115.         {  
  116.             public void actionPerformed(ActionEvent event)  
  117.             {  
  118.                 table.clearSelection();  
  119.                 //如果該菜單項處于選中狀態,設置表格的選擇單元是行  
  120.                 table.setRowSelectionAllowed(rowsItem.isSelected());  
  121.                 //如果選擇行、選擇列同時被選中,其實質是選擇單元格  
  122.                 cellsItem.setSelected(table.getCellSelectionEnabled());  
  123.             }  
  124.         });  
  125.         selectUnitMenu.add(rowsItem);  
  126.         columnsItem.addActionListener(new ActionListener()  
  127.         {  
  128.             public void actionPerformed(ActionEvent event)  
  129.             {  
  130.                 table.clearSelection();  
  131.                 //如果該菜單項處于選中狀態,設置表格的選擇單元是列  
  132.                 table.setColumnSelectionAllowed(columnsItem.isSelected());  
  133.                 //如果選擇行、選擇列同時被選中,其實質是選擇單元格  
  134.                 cellsItem.setSelected(table.getCellSelectionEnabled());  
  135.             }  
  136.         });  
  137.         selectUnitMenu.add(columnsItem);  
  138.         cellsItem.addActionListener(new ActionListener()  
  139.         {  
  140.             public void actionPerformed(ActionEvent event)  
  141.             {  
  142.                 table.clearSelection();  
  143.                 //如果該菜單項處于選中狀態,設置表格的選擇單元是單元格  
  144.                 table.setCellSelectionEnabled(cellsItem.isSelected());  
  145.                 //該選項的改變會同時影響選擇行、選擇列兩個菜單  
  146.                 rowsItem.setSelected(table.getRowSelectionAllowed());  
  147.                 columnsItem.setSelected(table.getColumnSelectionAllowed());  
  148.             }  
  149.         });  
  150.         selectUnitMenu.add(cellsItem);  
  151.  
  152.         jf.setJMenuBar(menuBar);  
  153.         //分別獲取表格的三個表格列,并設置三列的最小寬度,最佳寬度和最大寬度  
  154.         TableColumn nameColumn = table.getColumn(columnTitle[0]);  
  155.         nameColumn.setMinWidth(40);  
  156.         TableColumn ageColumn = table.getColumn(columnTitle[1]);  
  157.         ageColumn.setPreferredWidth(50);  
  158.         TableColumn genderColumn = table.getColumn(columnTitle[2]);  
  159.         genderColumn.setMaxWidth(50);  
  160.  
  161.  
  162.         //將JTable對象放在JScrollPane中,并將該JScrollPane放在窗口中顯示出來  
  163.         jf.add(new JScrollPane(table));  
  164.         System.out.println(table.getModel());  
  165.         jf.pack();  
  166.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  167.         jf.setVisible(true);  
  168.     }  
  169.  
  170.     public static void main(String[] args)   
  171.     {  
  172.         new AdjustingWidth().init();  
  173.     }  
  174. }  

和JList,JTree類似,JTable采用TableModel來保存表格中的所有狀態數據,采用TableColumnModel來保存所有列的數據。eg

  1. public class TestDefaultTableModel  
  2. {  
  3.     JFrame mainWin = new JFrame("管理數據行、數據列");  
  4.     final int COLUMN_COUNT = 5;  
  5.     DefaultTableModel model;  
  6.     JTable table;  
  7.     //用于保存被隱藏列的List集合  
  8.     ArrayList<TableColumn> hiddenColumns = new ArrayList<TableColumn>();  
  9.     public void init()  
  10.     {  
  11.         model = new DefaultTableModel(COLUMN_COUNT ,COLUMN_COUNT);  
  12.         for (int i = 0; i < COLUMN_COUNT ; i++ )  
  13.         {  
  14.             for (int j = 0; j < COLUMN_COUNT ; j++ )  
  15.             {  
  16.                 model.setValueAt("老單元格值 " + i + " " + j , i , j);  
  17.             }  
  18.         }  
  19.  
  20.         table = new JTable(model);  
  21.  
  22.         mainWin.add(new JScrollPane(table), BorderLayout.CENTER);  
  23.  
  24.         //為窗口安裝菜單  
  25.         JMenuBar menuBar = new JMenuBar();  
  26.         mainWin.setJMenuBar(menuBar);  
  27.         JMenu tableMenu = new JMenu("管理");  
  28.         menuBar.add(tableMenu);  
  29.  
  30.         JMenuItem hideColumnsItem = new JMenuItem("隱藏選中列");  
  31.         hideColumnsItem.addActionListener(new ActionListener()  
  32.         {  
  33.             public void actionPerformed(ActionEvent event)  
  34.             {  
  35.                 //獲取所有選中列的索引  
  36.                 int[] selected = table.getSelectedColumns();  
  37.                 TableColumnModel columnModel = table.getColumnModel();  
  38.                 //依次把每一個選中的列隱藏起來,并使用List把這些列保存起來  
  39.                 for (int i = selected.length - 1; i >= 0; i--)  
  40.                 {  
  41.                     TableColumn column = columnModel.getColumn(selected[i]);  
  42.                     table.removeColumn(column);  
  43.                     //把隱藏的列保存起來,確保以后可以顯示出來  
  44.                     hiddenColumns.add(column);  
  45.                 }  
  46.             }  
  47.         });  
  48.         tableMenu.add(hideColumnsItem);  
  49.  
  50.         JMenuItem showColumnsItem = new JMenuItem("顯示隱藏列");  
  51.         showColumnsItem.addActionListener(new ActionListener()  
  52.         {  
  53.             public void actionPerformed(ActionEvent event)  
  54.             {  
  55.                 //把所有隱藏列依次顯示出來  
  56.                 for (TableColumn tc : hiddenColumns)  
  57.                 {  
  58.                     //依次把所有隱藏的列顯示出來  
  59.                     table.addColumn(tc);  
  60.                 }  
  61.                 //清空保存隱藏列的List集合  
  62.                 hiddenColumns.clear();              
  63.             }  
  64.         });  
  65.         tableMenu.add(showColumnsItem);  
  66.  
  67.         JMenuItem addColumnItem = new JMenuItem("插入選中列");  
  68.         addColumnItem.addActionListener(new ActionListener()  
  69.         {  
  70.             public void actionPerformed(ActionEvent event)  
  71.             {  
  72.                 //獲取所有選中列的索引  
  73.                 int[] selected = table.getSelectedColumns();  
  74.                 TableColumnModel columnModel = table.getColumnModel();  
  75.                 //依次把選中的列添加到JTable之后  
  76.                 for (int i = selected.length - 1; i >= 0; i--)  
  77.                 {    
  78.                     TableColumn column = columnModel.getColumn(selected[i]);  
  79.                     table.addColumn(column);  
  80.                 }  
  81.             }  
  82.         });  
  83.         tableMenu.add(addColumnItem);  
  84.  
  85.         JMenuItem addRowItem = new JMenuItem("增加行");  
  86.         addRowItem.addActionListener(new ActionListener()  
  87.         {  
  88.             public void actionPerformed(ActionEvent event)  
  89.             {  
  90.                 //創建一個String數組作為新增行的內容  
  91.                 String[] newCells = new String[COLUMN_COUNT];  
  92.                 for (int i = 0; i < newCells.length; i++)  
  93.                 {  
  94.                     newCells[i] = "新單元格值 " + model.getRowCount() + " " + i;  
  95.                 }  
  96.                 //向TableModel中新增一行。  
  97.                 model.addRow(newCells);  
  98.             }  
  99.         });  
  100.         tableMenu.add(addRowItem);  
  101.  
  102.         JMenuItem removeRowsItem = new  JMenuItem("刪除選中行");  
  103.         removeRowsItem.addActionListener(new ActionListener()  
  104.         {  
  105.             public void actionPerformed(ActionEvent event)  
  106.             {  
  107.                 //獲取所有選中行  
  108.                 int[] selected = table.getSelectedRows();  
  109.                 //依次刪除所有選中行  
  110.                 for (int i = selected.length - 1; i >= 0; i--)  
  111.                 {  
  112.                     model.removeRow(selected[i]);  
  113.                 }  
  114.             }  
  115.         });  
  116.         tableMenu.add(removeRowsItem);  
  117.  
  118.         mainWin.pack();  
  119.         mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  120.         mainWin.setVisible(true);  
  121.     }  
  122.  
  123.     public static void main(String[] args)   
  124.     {  
  125.         new TestDefaultTableModel().init();  
  126.     }  

但要注意列的增加,只是將原來隱藏的列顯示,而不是真正增加列,你要新增的話那就重新new個JTable

前面講的表格,單元格都是字符串,這是由于我們傳入的都是DefaultTableModel它最終調用toString方法來繪制表格,具體自定義單元格的方法如下,eg

  1. public class TestTableCellRenderer  
  2. {  
  3.     JFrame jf = new JFrame("使用單元格繪制器");  
  4.     JTable table;  
  5.     //定義二維數組作為表格數據  
  6.     Object[][] tableData =   
  7.     {  
  8.         new Object[]{"李清照" , 29 , "女" , new ImageIcon("icon/3.gif") , true},  
  9.         new Object[]{"蘇格拉底"56 , "男" , new ImageIcon("icon/1.gif") , false},  
  10.         new Object[]{"李白"35 , "男" , new ImageIcon("icon/4.gif")  , true},  
  11.         new Object[]{"弄玉"18 , "女" , new ImageIcon("icon/2.gif")  , true},  
  12.         new Object[]{"虎頭" , 2 , "男" , new ImageIcon("icon/5.gif") , true}  
  13.     };  
  14.     //定義一維數據作為列標題  
  15.     String[] columnTitle = {"姓名" , "年齡" , "性別" , "主頭像" , "是否中國人"};  
  16.     public void init()  
  17.     {  
  18.         //以二維數組和一維數組來創建一個ExtendedTableModel對象  
  19.         ExtendedTableModel model = new ExtendedTableModel(columnTitle , tableData);  
  20.         //以ExtendedTableModel來創建JTable  
  21.         table = new JTable( model);  
  22.         table.setRowSelectionAllowed(false);  
  23.         table.setRowHeight(40);  
  24.         //獲取第三列  
  25.         TableColumn lastColumn = table.getColumnModel().getColumn(2);  
  26.         //對第三列采用自定義的單元格繪制器  
  27.         lastColumn.setCellRenderer(new GenderTableCellRenderer());  
  28.  
  29.         //將JTable對象放在JScrollPane中,并將該JScrollPane放在窗口中顯示出來  
  30.         jf.add(new JScrollPane(table));  
  31.         jf.pack();  
  32.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  33.         jf.setVisible(true);  
  34.     }  
  35.     public static void main(String[] args)   
  36.     {  
  37.         new TestTableCellRenderer().init();  
  38.     }  
  39. }  
  40.  
  41. class ExtendedTableModel extends DefaultTableModel  
  42. {  
  43.     //重新提供一個構造器,該構造器的實現委托給DefaultTableModel父類  
  44.     public ExtendedTableModel(String[] columnNames , Object[][] cells)  
  45.     {  
  46.         super(cells , columnNames);  
  47.     }  
  48.     //重寫getColumnClass方法,根據每列的第一個值來返回其真實的數據類型  
  49.     public Class getColumnClass(int c)   
  50.     {  
  51.         return getValueAt(0 , c).getClass();  
  52.     }  
  53. }  
  54.  
  55. class GenderTableCellRenderer extends JPanel implements TableCellRenderer  
  56. {  
  57.     private String cellValue;  
  58.     //定義圖標的寬度和高度  
  59.     final int ICON_WIDTH = 23;  
  60.     final int ICON_HEIGHT = 21;  
  61.     public Component getTableCellRendererComponent(JTable table, Object value,   
  62.         boolean isSelected, boolean hasFocus, int row, int column)  
  63.     {  
  64.         cellValue = (String)value;  
  65.         //設置選中狀態下繪制邊框  
  66.         if (hasFocus)  
  67.         {  
  68.             setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));  
  69.         }  
  70.         else 
  71.         {  
  72.             setBorder(null);  
  73.         }  
  74.         return this;  
  75.     }  
  76.     //重寫paint方法,負責繪制該單元格內容  
  77.     public void paint(Graphics g)  
  78.     {  
  79.         //如果表格值為"男"或"male",則繪制一個男性圖標  
  80.         if (cellValue.equalsIgnoreCase("男")   
  81.             || cellValue.equalsIgnoreCase("male"))  
  82.         {  
  83.             drawImage(g , new ImageIcon("icon/male.gif").getImage());   
  84.         }  
  85.         //如果表格值為"女"或"female",則繪制一個女性圖標  
  86.         if (cellValue.equalsIgnoreCase("女")   
  87.             || cellValue.equalsIgnoreCase("female"))  
  88.         {  
  89.             drawImage(g , new ImageIcon("icon/female.gif").getImage());   
  90.         }  
  91.     }  
  92.     //繪制圖標的方法  
  93.     private void drawImage(Graphics g , Image image)  
  94.     {  
  95.         g.drawImage(image, (getWidth() - ICON_WIDTH ) / 2   
  96.             , (getHeight() - ICON_HEIGHT) / 2 , null);  
  97.     }  

我這里只是實現了每列不同的控件,大家還可以自定義一個表格每行每列都是不同的控件,那就要得到單元格再setCellRender。

原文鏈接:http://blog.csdn.net/terryzero/article/details/3838423

【編輯推薦】

  1. Java Swing編程:JTree樹
  2. Java Swing編程:微調控制器和列表框
  3. Java Swing編程:進度條和滑動條
  4. Java Swing編程:Applet和JApplet
  5. Java Swing編程:拖放功能
責任編輯:林師授 來源: terryzero的博客
相關推薦

2009-07-14 09:28:26

JTable和TablSwing

2012-01-17 13:41:34

JavaSwing

2012-01-17 14:05:29

JavaSwing

2012-01-17 13:46:55

JavaSwing

2012-01-17 13:53:16

JavaSwing

2012-01-17 13:16:34

JavaSwing

2012-01-17 13:58:17

JavaSwing

2009-07-16 13:26:32

Swing增加

2012-08-09 11:20:40

Swing

2012-01-17 14:01:33

JavaSwing

2009-07-10 14:20:01

AcceleratorJava Swing

2009-07-10 11:45:44

Java Swing

2009-07-16 11:13:50

Java Swing

2009-07-10 10:47:01

Java Swing

2009-07-10 13:09:53

.Net與Java S

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-10 15:10:02

Java Swing經

2009-07-16 08:53:03

Swing任務Swing線程

2009-07-15 13:48:26

Swing模型和渲染器

2009-04-30 09:10:42

JavaSwing線程安全
點贊
收藏

51CTO技術棧公眾號

国产精品资源在线| 久久中文字幕av一区二区不卡| 亚洲一区二区三区小说| 精品麻豆av| 中文字幕一区二区人妻痴汉电车| 欧美 日韩 国产 一区| 日韩成人免费视频| 伊人色在线观看| 91色在线看| 亚洲国产高清在线观看视频| 成人看片视频| 中文字幕乱码无码人妻系列蜜桃| 欧美日韩国产色综合一二三四| 亚洲人成毛片在线播放| 久久久久久久久久影视| 精品日本视频| 午夜精品免费在线观看| 在线天堂一区av电影| 色中色在线视频| 国产乱淫av一区二区三区| 奇米影视亚洲狠狠色| 精品少妇久久久| 国产国产精品| 尤物九九久久国产精品的分类| 亚洲精品视频久久| 久久久之久亚州精品露出| 日韩影视一区二区三区| 日韩高清一级| 精品国精品国产| 一级片黄色免费| 久久麻豆视频| 91黄色激情网站| 成人在线免费观看av| 日本精品600av| 中文字幕一区免费在线观看| 日韩欧美激情一区二区| 香蕉久久国产av一区二区| 国产很黄免费观看久久| 91精品久久久久久久久久久久久久| 久草手机在线观看| 亚洲每日更新| 性色av一区二区三区| 久久久91视频| 欧美日韩国产一区精品一区| 久久久精品电影| 成人欧美一区二区三区黑人一| 欧美精品一区二区久久| 亚洲视频第一页| 三级电影在线看| 成人台湾亚洲精品一区二区| 日韩一级二级三级精品视频| 伊人精品视频在线观看| 95精品视频| 88在线观看91蜜桃国自产| 五月婷婷丁香综合网| 日韩不卡免费高清视频| 色琪琪一区二区三区亚洲区| 日本男人操女人| 成人精品国产亚洲| 欧美日韩精品一二三区| 日韩av片专区| 亚洲国产欧美国产第一区| 制服丝袜亚洲色图| 日韩精品xxx| 亚洲国产精品免费视频| 亚洲成色777777女色窝| 日本少妇xxxx| 精品一区免费| 日韩中文字幕在线播放| 在线观看美女av| 国产精品红桃| 日韩美女在线播放| 中文字幕久久熟女蜜桃| 国产一区二区导航在线播放| 亚洲一区二区三区四区视频| 国产成人精品一区二三区四区五区 | 日韩av影片| 91久久国产综合久久| 中文字幕在线导航| 玖玖精品一区| 日韩成人av在线| 欧美激情亚洲色图| 午夜激情一区| 青草热久免费精品视频| 888奇米影视| 成人免费看黄yyy456| 玛丽玛丽电影原版免费观看1977 | 国产精品免费av| 久草视频这里只有精品| 免费观看欧美大片| 3d成人h动漫网站入口| 香蕉视频污视频| 精品久久影院| 午夜精品一区二区三区在线视| 91视频久久久| 福利电影一区二区三区| 五月天久久综合网| 激情av在线| 欧美三区在线视频| 欧美成人精品一区二区综合免费| 国产午夜一区| 欧美国产乱视频| 亚洲手机在线观看| 99久久精品国产毛片| 亚洲一区不卡在线| 美女在线视频免费| 欧美一二三四区在线| 熟女少妇一区二区三区| 欧美在线亚洲综合一区| 国产精品成人一区二区三区吃奶 | 粉嫩aⅴ一区二区三区四区五区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 精品三级av在线导航| 日韩在线观看成人| 天堂在线免费观看视频| 国产成人免费视频精品含羞草妖精| 日本一区二区三区精品视频| 黄视频网站在线观看| 日韩一区二区在线观看视频播放| 91视频免费看片| 午夜在线观看免费一区| 国产女人水真多18毛片18精品 | 成人3d精品动漫精品一二三| 国内精品久久久| av片免费播放| 亚洲欧洲一区二区三区| 黄色免费网址大全| 久久综合影院| 欧美洲成人男女午夜视频| 国产成人手机在线| 亚洲精品国产a| 亚洲在线观看网站| 国产二区精品| 成人黄色大片在线免费观看| 国产精品ⅴa有声小说| 欧美日韩在线视频一区二区| 这里只有精品在线观看视频| 狠狠爱综合网| 超碰97国产在线| 丝袜国产在线| 欧美电影精品一区二区| 久草网站在线观看| 国产综合久久久久影院| 在线播放豆国产99亚洲| 欧美视频免费看| 日韩在线欧美在线| 亚洲天堂aaa| 国产精品久久久久久久久免费丝袜| 别急慢慢来1978如如2| 沈樵精品国产成av片| 日韩免费在线观看视频| 国产女人在线观看| 欧美性高清videossexo| 国产91丝袜美女在线播放| 免费成人在线视频观看| 亚洲开发第一视频在线播放| 精品久久福利| 久久久成人av| 亚洲精品视频网| 精品国产31久久久久久| 中文字幕第4页| 麻豆高清免费国产一区| av动漫免费观看| 日本亚州欧洲精品不卡| 97精品久久久中文字幕免费| 日韩专区一区二区| 欧美性猛交一区二区三区精品| 精品在线观看一区| 高清国产一区二区| 妺妺窝人体色www在线小说| 九热爱视频精品视频| 国产精品旅馆在线| 亚洲精品一线| 日韩电影中文字幕一区| 奴色虐av一区二区三区| 日韩码欧中文字| 污污免费在线观看| 日韩电影在线观看电影| 一级黄色录像免费看| aiai久久| 日韩美女视频免费在线观看| av网站在线免费看推荐| 日韩av在线免费观看| 又骚又黄的视频| 亚洲午夜成aⅴ人片| av男人的天堂av| 国产麻豆视频一区| 欧美老熟妇喷水| 91tv精品福利国产在线观看| 国产欧美一区二区在线播放| 91精品国产经典在线观看| 欧美大片免费观看在线观看网站推荐 | 九色综合狠狠综合久久| 成人网站免费观看入口| 日韩精品欧美| 精品久久久久久一区二区里番| 78精品国产综合久久香蕉| 欧美激情按摩在线| 9色在线视频网站| 亚洲国产99精品国自产| 一级黄色小视频| 婷婷激情综合网| 青青操在线视频观看| 91玉足脚交白嫩脚丫在线播放| 日本国产一级片| 天堂在线一区二区| 久久99久久99精品| 99久久九九| 欧美日韩最好看的视频| 91九色鹿精品国产综合久久香蕉| 国产精品久久久久久久久粉嫩av| 秋霞伦理一区| 欧美国产日韩一区二区| 色多多视频在线观看| 精品在线小视频| 蜜桃久久一区二区三区| 制服丝袜亚洲色图| 在线观看国产小视频| 欧美性xxxx极品高清hd直播| 久久这里只有精品免费| 国产精品久久久久久久久快鸭| 欧美熟妇一区二区| 成人国产精品免费网站| 国内精品国产三级国产aⅴ久| 日本午夜一区二区| 亚洲国产精品久久久久爰色欲| 亚洲午夜极品| 国产精品igao激情视频| 国产精品国产一区| 亚洲v国产v在线观看| 欧美日韩爱爱| 欧美成人第一区| 日韩超碰人人爽人人做人人添| 国产高清精品一区二区| 亚洲一区电影| 国产激情一区二区三区在线观看 | 日本不卡一区二区三区| 无码人妻h动漫| 丝袜诱惑亚洲看片 | 久久se精品一区精品二区| 色诱视频在线观看| 日韩精品一级二级 | 电影在线观看一区二区| 日本aⅴ大伊香蕉精品视频| 天堂av在线| 欧洲亚洲免费在线| 日本一道高清亚洲日美韩| 国产精品老女人视频| 美女久久久久久| 91免费在线视频| 欧美视频二区欧美影视| 国产精品三区www17con| 国产精品x8x8一区二区| 麻豆蜜桃91| 成人免费电影网址| 久久av秘一区二区三区| 欧美日韩调教| 日本在线xxx| 狂野欧美性猛交xxxx巴西| 午夜激情在线观看视频| 久久99精品国产.久久久久久| 嫩草视频免费在线观看| 国产一区二区精品久久99| 日本精品一二三区| 久久亚洲一区二区三区明星换脸| 精品人妻无码一区| 国产精品毛片久久久久久| 精品一区在线观看视频| 亚洲成人www| 69国产精品视频免费观看| 欧美日韩一区不卡| 精品女同一区二区三区| 亚洲精品美女网站| 大胆av不用播放器在线播放| 久久在精品线影院精品国产| 黄色在线观看视频网站| 国产成人综合一区二区三区| 亚洲资源在线| 精品在线不卡| 97久久视频| 国产资源在线视频| 蜜臀精品一区二区三区在线观看 | aaa国产精品视频| 日本午夜精品一区二区| 一本一道久久a久久精品蜜桃 | 奇米色777欧美一区二区| 亚洲热在线视频| 国产亚洲一区字幕| 国产精品老熟女一区二区| 日韩欧美成人精品| 国产精品久久久久久久成人午夜 | 老熟妇精品一区二区三区| 欧美国产精品劲爆| 久久久久久蜜桃| 欧美午夜理伦三级在线观看| 成人毛片在线精品国产| 中文字幕亚洲二区| 国产精品25p| 91色琪琪电影亚洲精品久久| 免费精品国产的网站免费观看| 特级毛片在线免费观看| 亚洲欧美成人综合| wwwxxxx在线观看| 中日韩免费视频中文字幕| 久久久久久久久久久97| 欧美日韩在线精品一区二区三区激情 | 91精品影视| 国产精品永久入口久久久| 日韩理论在线| 日韩av片在线看| 成人av免费观看| 久久久国产成人| 91精品国产综合久久福利软件| 国产免费av高清在线| 亚州av一区二区| 成人知道污网站| 欧美精品一区二区性色a+v| 欧美96一区二区免费视频| 国产精品探花一区二区在线观看| 18涩涩午夜精品.www| 中文字幕在线观看国产| 亚洲免费一在线| 美女av在线免费看| 国产精品国产亚洲精品看不卡15 | 欧美五码在线| 99在线观看视频免费| 国产真实乱子伦精品视频| 天天干天天操天天拍| 色av一区二区| 久久米奇亚洲| 国产suv精品一区二区| 人体久久天天| 国产精品自拍片| 99久久综合99久久综合网站| 久久婷婷一区二区| 精品国产乱码久久久久久夜甘婷婷 | 国产不卡的av| 亚洲欧美日韩久久| 国产精品爽爽久久久久久| 日韩在线中文字幕| 欧美黄色成人| 在线视频不卡一区二区| 精品一区二区三区在线播放 | 天天操天天干天天综合网| 亚洲国产福利视频| 欧美激情videos| 久久亚洲黄色| 美女福利视频在线| 久久久电影一区二区三区| 探花视频在线观看| 国产一区二区三区中文| jizz欧美| 玖玖精品在线视频| 国产成人亚洲综合a∨婷婷图片| 精品在线视频免费观看| 欧美精品一区二区三区蜜桃视频 | 性少妇bbw张开| 欧美视频在线播放| 老司机午夜在线| 18成人在线| 夜夜嗨av一区二区三区网站四季av| 精品国产一区在线| 在线看日韩精品电影| 四虎久久免费| 国产99视频精品免费视频36| 一区二区三区成人精品| 亚洲国产天堂av| 欧美一区二区三区四区在线观看| 亚洲按摩av| 久久综合久久综合这里只有精品| 日本午夜精品视频在线观看 | av网在线观看| 91福利视频导航| 国产精品一级| 成人一级黄色大片| 亚洲白拍色综合图区| 久久野战av| 一二三四中文字幕| 99久久99久久综合| 瑟瑟视频在线免费观看| 欧美精品做受xxx性少妇| 欧美变态网站| 日韩欧美亚洲另类| 婷婷成人综合网| 在线观看的av| 国产精品免费视频一区二区| 久久精品毛片| 国产亚洲精品久久久久久打不开| 亚洲欧美综合精品久久成人| 懂色av色香蕉一区二区蜜桃| 三上悠亚久久精品| 国产精品久久毛片av大全日韩| 人妻视频一区二区三区| 国产一区二区在线免费视频| 亚洲韩日在线| 久久精品一区二区三区四区五区| 亚洲精品成人久久久| 国产精品日韩精品在线播放| 欧美成人精品欧美一级乱| 一区二区三区在线观看国产|