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

Java Swing編程:JTree樹

開發 后端
樹這東西給用戶的感覺極為方便,但給程序員帶來很大的麻煩,它是swing中最麻煩的控件之一。樹要弄的好非常麻煩,圖標的美化,層次的劃分,各種事件的處理。

樹這東西給用戶的感覺極為方便,但給程序員帶來很大的麻煩,它是swing中最麻煩的控件之一。樹要弄的好非常麻煩,圖標的美化,層次的劃分,各種事件的處理。。。對于初學者來說,就不要太講究樣式,下面舉個粗糙的例子,eg

  1. public class SimpleJTree    
  2. {  
  3.     JFrame jf = new JFrame("簡單樹");  
  4.  
  5.     JTree tree;  
  6.     //定義幾個初始節點  
  7.     DefaultMutableTreeNode root = new DefaultMutableTreeNode("中國");   
  8.     DefaultMutableTreeNode guangdong = new DefaultMutableTreeNode("廣東");  
  9.     DefaultMutableTreeNode guangxi = new DefaultMutableTreeNode("廣西");  
  10.     DefaultMutableTreeNode foshan = new DefaultMutableTreeNode("佛山");  
  11.     DefaultMutableTreeNode shantou = new DefaultMutableTreeNode("汕頭");  
  12.     DefaultMutableTreeNode guilin = new DefaultMutableTreeNode("桂林");  
  13.     DefaultMutableTreeNode nanning = new DefaultMutableTreeNode("南寧");  
  14.  
  15.     public void init()  
  16.     {  
  17.         //通過add方法建立樹節點之間的父子關系  
  18.         guangdong.add(foshan);  
  19.         guangdong.add(shantou);  
  20.         guangxi.add(guilin);  
  21.         guangxi.add(nanning);  
  22.         root.add(guangdong);  
  23.         root.add(guangxi);  
  24.         //以根節點創建樹  
  25.         tree = new JTree(root);  
  26.  
  27.         //默認連線  
  28.         //tree.putClientProperty("JTree.lineStyle" , "Angeled");  
  29.         //沒有連線  
  30.         tree.putClientProperty("JTree.lineStyle" , "None");  
  31.         //水平分隔線  
  32.         //tree.putClientProperty("JTree.lineStyle" , "Horizontal");   
  33.  
  34.  
  35.         //設置是否顯示根節點的“展開/折疊”圖標,默認是false  
  36.         tree.setShowsRootHandles(true);  
  37.         //設置節點是否可見,默認是true  
  38.         tree.setRootVisible(true);  
  39.  
  40.         jf.add(new JScrollPane(tree));  
  41.         jf.pack();  
  42.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  43.         jf.setVisible(true);  
  44.     }  
  45.  
  46.     public static void main(String[] args)   
  47.     {  
  48.         new SimpleJTree().init();  
  49.     }  
  50. }  

拖動,編輯樹節點也是樹的基本功能,下面就在上面例子的基礎上,加上這些功能,eg

  1. public class EditJTree  
  2. {  
  3.     JFrame jf;  
  4.  
  5.     JTree tree;  
  6.     //上面JTree對象對應的model  
  7.     DefaultTreeModel model;  
  8.       
  9.     //定義幾個初始節點  
  10.     DefaultMutableTreeNode root = new DefaultMutableTreeNode("中國");   
  11.     DefaultMutableTreeNode guangdong = new DefaultMutableTreeNode("廣東");  
  12.     DefaultMutableTreeNode guangxi = new DefaultMutableTreeNode("廣西");  
  13.     DefaultMutableTreeNode foshan = new DefaultMutableTreeNode("佛山");  
  14.     DefaultMutableTreeNode shantou = new DefaultMutableTreeNode("汕頭");  
  15.     DefaultMutableTreeNode guilin = new DefaultMutableTreeNode("桂林");  
  16.     DefaultMutableTreeNode nanning = new DefaultMutableTreeNode("南寧");  
  17.  
  18.     //定義需要被拖動的TreePath  
  19.     TreePath movePath;  
  20.  
  21.     JButton addSiblingButton = new JButton("添加兄弟節點");  
  22.     JButton addChildButton = new JButton("添加子節點");  
  23.     JButton deleteButton = new JButton("刪除節點");  
  24.     JButton editButton = new JButton("編輯當前節點");  
  25.  
  26.     public void init()  
  27.     {  
  28.         guangdong.add(foshan);  
  29.         guangdong.add(shantou);  
  30.         guangxi.add(guilin);  
  31.         guangxi.add(nanning);  
  32.         root.add(guangdong);  
  33.         root.add(guangxi);  
  34.           
  35.         jf = new JFrame("樹");  
  36.         tree = new JTree(root);  
  37.         //獲取JTree對應的TreeModel對象  
  38.         model = (DefaultTreeModel)tree.getModel();  
  39.         //設置JTree可編輯  
  40.         tree.setEditable(true);  
  41.         MouseListener ml = new MouseAdapter()   
  42.         {  
  43.             //按下鼠標時候獲得被拖動的節點  
  44.             public void mousePressed(MouseEvent e)  
  45.             {  
  46.                 //如果需要唯一確定某個節點,必須通過TreePath來獲取。  
  47.                 TreePath tp = tree.getPathForLocation(e.getX(), e.getY());  
  48.                 if (tp != null)  
  49.                 {  
  50.                     movePath = tp;  
  51.                 }  
  52.             }  
  53.             //鼠標松開時獲得需要拖到哪個父節點  
  54.             public void mouseReleased(MouseEvent e)  
  55.             {  
  56.                 //根據鼠標松開時的TreePath來獲取TreePath  
  57.                 TreePath tp = tree.getPathForLocation(e.getX(), e.getY());  
  58.  
  59.                 if (tp != null && movePath != null)  
  60.                 {  
  61.                     //阻止向子節點拖動  
  62.                     if (movePath.isDescendant(tp) && movePath != tp)  
  63.                     {  
  64.                         JOptionPane.showMessageDialog(jf, "目標節點是被移動節點的子節點,無法移動!",   
  65.                             "非法操作", JOptionPane.ERROR_MESSAGE );  
  66.                         return;  
  67.                     }  
  68.                     //既不是向子節點移動,而且鼠標按下、松開的不是同一個節點  
  69.                     else if (movePath != tp)  
  70.                     {  
  71.                         System.out.println(tp.getLastPathComponent());  
  72.                         //add方法可以先將原節點從原父節點刪除,再添加到新父節點中  
  73.                         ((DefaultMutableTreeNode)tp.getLastPathComponent()).add(  
  74.                             (DefaultMutableTreeNode)movePath.getLastPathComponent());  
  75.                         movePath = null;  
  76.                         tree.updateUI();  
  77.                     }  
  78.                 }  
  79.             }  
  80.         };  
  81.         tree.addMouseListener(ml);  
  82.  
  83.         JPanel panel = new JPanel();  
  84.  
  85.         addSiblingButton.addActionListener(new ActionListener()  
  86.         {  
  87.             public void actionPerformed(ActionEvent event)  
  88.             {  
  89.                 //獲取選中節點  
  90.                 DefaultMutableTreeNode selectedNode  
  91.                     = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();  
  92.                 //如果節點為空,直接返回  
  93.                 if (selectedNode == nullreturn;  
  94.                 //獲取該選中節點的父節點  
  95.                 DefaultMutableTreeNode parent  
  96.                     = (DefaultMutableTreeNode)selectedNode.getParent();  
  97.                 //如果父節點為空,直接返回  
  98.                 if (parent == nullreturn;  
  99.                 //創建一個新節點  
  100.                 DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新節點");  
  101.                 //獲取選中節點的選中索引  
  102.                 int selectedIndex = parent.getIndex(selectedNode);  
  103.                 //在選中位置插入新節點  
  104.                 model.insertNodeInto(newNode, parent, selectedIndex + 1);  
  105.                 //--------下面代碼實現顯示新節點(自動展開父節點)-------  
  106.                 //獲取從根節點到新節點的所有節點  
  107.                 TreeNode[] nodes = model.getPathToRoot(newNode);  
  108.                 //使用指定的節點數組來創建TreePath  
  109.                 TreePath path = new TreePath(nodes);  
  110.                 //顯示指定TreePath  
  111.                 tree.scrollPathToVisible(path);  
  112.             }  
  113.         });  
  114.         panel.add(addSiblingButton);  
  115.  
  116.         addChildButton.addActionListener(new ActionListener()  
  117.         {  
  118.             public void actionPerformed(ActionEvent event)  
  119.             {  
  120.                 //獲取選中節點  
  121.                 DefaultMutableTreeNode selectedNode  
  122.                     = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();  
  123.                 //如果節點為空,直接返回  
  124.                 if (selectedNode == nullreturn;  
  125.                 //創建一個新節點  
  126.                 DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新節點");  
  127.                 //直接通過model來添加新節點,則無需通過調用JTree的updateUI方法  
  128.                 //model.insertNodeInto(newNode, selectedNode, selectedNode.getChildCount());  
  129.                 //直接通過節點添加新節點,則需要調用tree的updateUI方法  
  130.                 selectedNode.add(newNode);  
  131.                 //--------下面代碼實現顯示新節點(自動展開父節點)-------  
  132.                 TreeNode[] nodes = model.getPathToRoot(newNode);  
  133.                 TreePath path = new TreePath(nodes);  
  134.                 tree.scrollPathToVisible(path);  
  135.                 tree.updateUI();  
  136.             }  
  137.         });  
  138.         panel.add(addChildButton);  
  139.  
  140.         deleteButton.addActionListener(new ActionListener()  
  141.         {  
  142.             public void actionPerformed(ActionEvent event)  
  143.             {  
  144.                 DefaultMutableTreeNode selectedNode  
  145.                     = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();  
  146.                 if (selectedNode != null && selectedNode.getParent() != null)  
  147.                 {  
  148.                     //刪除指定節點  
  149.                     model.removeNodeFromParent(selectedNode);  
  150.                 }  
  151.             }  
  152.         });  
  153.         panel.add(deleteButton);  
  154.  
  155.         editButton.addActionListener(new ActionListener()  
  156.         {  
  157.             public void actionPerformed(ActionEvent event)  
  158.             {  
  159.                 TreePath selectedPath = tree.getSelectionPath();  
  160.                 if (selectedPath != null)  
  161.                 {  
  162.                     //編輯選中節點  
  163.                     tree.startEditingAtPath(selectedPath);  
  164.                 }  
  165.             }  
  166.         });  
  167.         panel.add(editButton);  
  168.  
  169.         jf.add(new JScrollPane(tree));  
  170.         jf.add(panel , BorderLayout.SOUTH);  
  171.         jf.pack();  
  172.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  173.         jf.setVisible(true);  
  174.     }  
  175.  
  176.     public static void main(String[] args)   
  177.     {  
  178.         new EditJTree().init();  
  179.     }  
  180. }  

最后講下如何修飾tree的圖標,主要是通過拓展TreeCellRenderer來實現,eg

  1. public class ExtendsDefaultTreeCellRenderer    
  2. {  
  3.     JFrame jf = new JFrame("根據節點類型定義圖標");  
  4.  
  5.     JTree tree;  
  6.     //定義幾個初始節點  
  7.     DefaultMutableTreeNode root = new DefaultMutableTreeNode(  
  8.         new NodeData(DBObjectType.ROOT , "數據庫導航"));   
  9.     DefaultMutableTreeNode salaryDb = new DefaultMutableTreeNode(  
  10.         new NodeData(DBObjectType.DATABASE , "公司工資數據庫"));  
  11.     DefaultMutableTreeNode customerDb = new DefaultMutableTreeNode(  
  12.         new NodeData(DBObjectType.DATABASE , "公司客戶數據庫"));  
  13.     //定義salaryDb的兩個子節點  
  14.     DefaultMutableTreeNode employee = new DefaultMutableTreeNode(  
  15.         new NodeData(DBObjectType.TABLE , "員工表"));  
  16.     DefaultMutableTreeNode attend = new DefaultMutableTreeNode(  
  17.         new NodeData(DBObjectType.TABLE , "考勤表"));  
  18.     //定義customerDb的一個子節點  
  19.     DefaultMutableTreeNode contact = new DefaultMutableTreeNode(  
  20.         new NodeData(DBObjectType.TABLE , "聯系方式表"));  
  21.  
  22.     //定義employee的三個子節點  
  23.     DefaultMutableTreeNode id = new DefaultMutableTreeNode(  
  24.         new NodeData(DBObjectType.INDEX , "員工ID"));  
  25.     DefaultMutableTreeNode name = new DefaultMutableTreeNode(  
  26.         new NodeData(DBObjectType.COLUMN , "姓名"));  
  27.     DefaultMutableTreeNode gender = new DefaultMutableTreeNode(  
  28.         new NodeData(DBObjectType.COLUMN , "性別"));  
  29.  
  30.     public void init()throws Exception  
  31.     {  
  32.         //通過add方法建立樹節點之間的父子關系  
  33.         root.add(salaryDb);  
  34.         root.add(customerDb);  
  35.         salaryDb.add(employee);  
  36.         salaryDb.add(attend);  
  37.         customerDb.add(contact);  
  38.         employee.add(id);  
  39.         employee.add(name);  
  40.         employee.add(gender);  
  41.         //以根節點創建樹  
  42.         tree = new JTree(root);  
  43.           
  44.         //設置該JTree使用自定義的節點繪制器  
  45.         tree.setCellRenderer(new MyRenderer());  
  46.       
  47.         //設置是否顯示根節點的“展開/折疊”圖標,默認是false  
  48.         tree.setShowsRootHandles(true);  
  49.         //設置節點是否可見,默認是true  
  50.         tree.setRootVisible(true);  
  51.  
  52.         //設置使用Windows風格外觀  
  53.         UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");  
  54.         //更新JTree的UI外觀  
  55.         SwingUtilities.updateComponentTreeUI(tree);  
  56.  
  57.         jf.add(new JScrollPane(tree));  
  58.         jf.pack();  
  59.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  60.         jf.setVisible(true);  
  61.     }  
  62.  
  63.     public static void main(String[] args) throws Exception  
  64.     {  
  65.         new ExtendsDefaultTreeCellRenderer().init();  
  66.     }  
  67. }  
  68. //定義一個NodeData類,用于封裝節點數據  
  69. class NodeData  
  70. {  
  71.     public int nodeType;  
  72.     public String nodeData;  
  73.     public NodeData(int nodeType , String nodeData)  
  74.     {  
  75.         this.nodeType = nodeType;  
  76.         this.nodeData = nodeData;  
  77.     }  
  78.     public String toString()  
  79.     {  
  80.         return nodeData;  
  81.     }  
  82. }  
  83. //定義一個接口,該接口里包含數據庫對象類型的常量  
  84. interface DBObjectType  
  85. {  
  86.     int ROOT = 0;  
  87.     int DATABASE = 1;  
  88.     int TABLE = 2;  
  89.     int COLUMN = 3;  
  90.     int INDEX = 4;  
  91. }  
  92. class MyRenderer extends DefaultTreeCellRenderer  
  93. {  
  94.     //初始化5個圖標  
  95.     ImageIcon rootIcon = new ImageIcon("icon/root.gif");  
  96.     ImageIcon databaseIcon = new ImageIcon("icon/database.gif");  
  97.     ImageIcon tableIcon = new ImageIcon("icon/table.gif");  
  98.     ImageIcon columnIcon = new ImageIcon("icon/column.gif");  
  99.     ImageIcon indexIcon = new ImageIcon("icon/index.gif");  
  100.  
  101.     public Component getTreeCellRendererComponent(JTree tree, Object value,  
  102.         boolean sel, boolean expanded,  boolean leaf, int row, boolean hasFocus)  
  103.     {  
  104.         //執行父類默認的節點繪制操作  
  105.         super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);  
  106.  
  107.         DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;  
  108.         NodeData data = (NodeData)node.getUserObject();  
  109.         //根據數據節點里的nodeType數據決定節點圖標  
  110.         ImageIcon icon = null;  
  111.         switch(data.nodeType)  
  112.         {  
  113.             case DBObjectType.ROOT:  
  114.                 icon = rootIcon;  
  115.                 break;  
  116.             case DBObjectType.DATABASE:  
  117.                 icon = databaseIcon;  
  118.                 break;  
  119.             case DBObjectType.TABLE:  
  120.                 icon = tableIcon;  
  121.                 break;  
  122.             case DBObjectType.COLUMN:  
  123.                 icon = columnIcon;  
  124.                 break;  
  125.             case DBObjectType.INDEX:  
  126.                 icon = indexIcon;  
  127.                 break;  
  128.         }  
  129.         //改變圖標  
  130.         this.setIcon(icon);  
  131.         return this;  
  132.     }  

圖標大家就自己搞幾個吧,不搞也可以看到效果。明天我將講下JTable,也是個麻煩的控件。

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

【編輯推薦】

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

2009-07-10 18:06:59

JTree Swing

2009-07-15 10:52:13

JTree組件

2012-01-17 13:41:34

JavaSwing

2012-01-17 14:09:54

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-06-10 16:17:00

Netbeans JT初始化

2012-01-17 14:01:33

JavaSwing

2009-07-15 13:48:26

Swing模型和渲染器

2021-03-18 08:44:20

Java數據結構算法

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-15 15:35:59

Swing程序Swing性能

2009-07-10 10:47:01

Java Swing

2009-07-10 13:09:53

.Net與Java S

2009-07-16 08:53:03

Swing任務Swing線程

2009-07-10 15:10:02

Java Swing經
點贊
收藏

51CTO技術棧公眾號

国产美女娇喘av呻吟久久| www国产精品内射老熟女| 人人爽人人av| 国产成人精品白浆久久69| 精品国产影院| 亚洲欧美在线aaa| 欧美亚洲国产视频小说| 蜜臀在线免费观看| 久久影视中文字幕| www.丝袜精品| 亚洲精品伦理在线| 国产剧情久久久久久| 五级黄高潮片90分钟视频| v片在线观看| 欧美成人直播| 色呦呦日韩精品| 91精品国产综合久久久久久丝袜| 神马久久久久久久久久久| 热色播在线视频| 国产99久久久国产精品潘金网站| 日韩在线视频观看| 午夜免费福利在线| 久久手机免费观看| 亚洲一区二区网站| 日韩电影网在线| 免费看黄色a级片| 青春有你2免费观看完整版在线播放高清 | 精品久久久久国产| 国产精品jizz视频| 久久老司机精品视频| 中文在线免费一区三区| 亚洲一区二区中文在线| 国产伦精品一区二区三区照片| 国产亚洲第一页| 日韩专区精品| 91精品国产入口| 中国一级大黄大黄大色毛片| 国产欧美日韩综合精品一区二区三区 | 污视频在线免费观看网站| 韩国v欧美v日本v亚洲v| 免费91麻豆精品国产自产在线观看| 亚洲美女性囗交| 成人看av片| 国产目拍亚洲精品99久久精品| 国产精品久久久久久久9999 | 婷婷免费在线观看| 91在线直播| 国产伦精品一区二区三区免费迷| 国产精品久久久久久久久久久久久| 国产成人无码精品| 国产精品一区二区av交换| 欧洲在线/亚洲| 亚洲一区二区四区| 国产极品久久久| 狠狠网亚洲精品| 91精品国产综合久久香蕉| www青青草原| 清纯唯美亚洲经典中文字幕| 日本高清不卡在线观看| 国产四区在线观看| 水莓100在线视频| 免费成人在线网站| 久久久精品欧美| 懂色av粉嫩av蜜乳av| 欧美97人人模人人爽人人喊视频| 亚洲综合免费观看高清完整版在线| 久久偷看各类wc女厕嘘嘘偷窃 | 精品久久久香蕉免费精品视频| a级免费在线观看| 邻居大乳一区二区三区| 久久久亚洲精品一区二区三区 | 综合中文字幕| 亚洲大胆美女视频| www亚洲成人| 久久婷婷五月综合色丁香| 911精品国产一区二区在线| 六月婷婷在线视频| 男人的天堂在线视频免费观看 | 91国模大尺度私拍在线视频| 成人3d动漫一区二区三区| 成人在线爆射| 一区二区三区欧美亚洲| 青草视频在线观看视频| bbw在线视频| 丰满人妻一区二区| 免费人成在线观看网站| 成人动漫av在线| 国产精品视频久久| 四虎永久在线精品| 亚洲美女15p| 日韩久久免费av| 四季av一区二区| 松下纱荣子在线观看| 亚洲欧美视频在线观看| 欧日韩一区二区三区| 亚洲va欧美va| 久久91精品国产91久久小草| 国产成人中文字幕| 中文字幕亚洲高清| 激情久久五月| 久久夜色撩人精品| 亚洲天堂av中文字幕| 免费国产自久久久久三四区久久| 精品国产欧美一区二区| 日本高清一区二区视频| 成人看av片| 亚洲综合999| 无码人妻h动漫| 日本不卡网站| 在线观看91视频| 大桥未久恸哭の女教师| www.久久久.com| 欧美亚洲国产怡红院影院| 欧美日韩国产精品激情在线播放| 91高清在线观看视频| 中文字幕一区二区三区四区 | 国产女主播福利| 久久伊人中文字幕| 官网99热精品| 91在线导航| 精品福利在线观看| 1314成人网| 国产精品国产亚洲精品| 欧美日韩精品免费| а 天堂 在线| 国产成人一区| 欧美性在线观看| 成人激情四射网| 国产成人av一区二区三区在线观看| 欧美大香线蕉线伊人久久| 美丽的姑娘在线观看免费动漫| 亚洲欧美激情在线| 中文字幕精品在线播放| 第四色男人最爱上成人网| 亚洲国产精品va在线观看黑人| www日韩在线| 综合激情一区| 欧美极品在线播放| 国产尤物在线视频| 国产成人av一区二区| 久久国产精品免费观看| 91国产精品| 久久精品国产综合| 波多野结衣一二区| 久久久久国产精品麻豆| heyzo国产| 日韩高清在线免费观看| 国产亚洲成av人片在线观看桃| 免费一级黄色录像| 亚洲成人tv| 海角国产乱辈乱精品视频| 欧美日韩国产精品综合| 91久久午夜| 国产精品国产自产拍高清av水多| 天天操天天射天天舔| 国产欧美日韩精品一区| 国产xxxxx在线观看| 亚洲尤物av| 国产999精品久久久| 91tv国产成人福利| 成+人+亚洲+综合天堂| 国产欧美精品aaaaaa片| av综合电影网站| 在线观看91av| 亚洲精品女人久久久| 日韩久久久久| 成人久久18免费网站图片| 性一交一乱一伧老太| 亚洲精品欧美专区| 亚洲一级Av无码毛片久久精品| 国内一区二区三区| 国产精品久久久久久久久男| 最新电影电视剧在线观看免费观看| 欧美午夜精品电影| 色欲一区二区三区精品a片| 国产精品一二三区| 黄色成人在线看| 国产不卡av一区二区| 国产免费亚洲高清| 蜜桃传媒在线观看免费进入| 欧美手机在线视频| 性欧美疯狂猛交69hd| 东方aⅴ免费观看久久av| 亚洲国产成人不卡| 涩涩av在线| 一本一本久久a久久精品综合小说| 免费中文字幕在线观看| www.66久久| 久青草视频在线播放| 日韩精品a在线观看91| 国产精品久久中文| 里番在线播放| 国产一区二区三区在线播放免费观看| 91久久久久久久久久久久| 亚洲永久免费视频| 中国女人特级毛片| 高清不卡在线观看av| 北条麻妃在线一区| 久久综合五月婷婷| 国产精品av网站| 宅男网站在线免费观看| 日韩国产精品一区| 国产日韩精品suv| 欧美色xxxx| 日本免费福利视频| 美女网站一区二区| 欧美激情 国产精品| 国产精品天天看天天狠| 欧美大片免费观看| av中文字幕免费| 色系网站成人免费| 福利所第一导航| 久久九九久精品国产免费直播| 欧美激情第四页| 日韩精品一级二级| 欧美日韩一区在线播放| 精品午夜av| 色综合色综合久久综合频道88| 视频福利在线| 欧美成人一区二区| 午夜国产福利一区二区| 国产一区二区三区四区五区入口 | 久久一本综合| 精品久久sese| 黄在线观看免费网站ktv| 精品国产1区二区| 97精品人妻一区二区三区| 亚洲成人免费看| 给我看免费高清在线观看| 国产尤物一区二区在线| 男女视频在线看| 久久一区中文字幕| 亚洲精品在线观看免费| 婷婷国产精品| 国产在线精品一区| 性爽视频在线| 久久理论片午夜琪琪电影网| av在线免费播放| 久久精品视频免费播放| 国产精品影院在线| 欧美高清激情brazzers| 最新国产中文字幕| 亚洲女爱视频在线| 制服 丝袜 综合 日韩 欧美| 裸体在线国模精品偷拍| 99er在线视频| 国产精品mm| 欧美久久久久久久| 婷婷成人综合| 蜜桃日韩视频| 国产一区二区三区四区五区传媒| 久久精品aaaaaa毛片| 中文有码一区| 日韩精品福利视频| 亚洲综合色婷婷在线观看| 成人免费福利在线| 中文字幕日本一区| 92看片淫黄大片看国产片| 国产资源在线观看入口av| 欧美精品久久久久a| av人人综合网| 青青久久av北条麻妃黑人| 日本激情视频在线观看| 亚洲国产日韩欧美在线动漫| 亚洲图片小说视频| 亚洲第一福利一区| 日韩免费不卡视频| 日韩欧美视频一区二区三区| 精品视频一二三区| 欧美日韩成人激情| 午夜精品久久久久久久96蜜桃| 欧美电影免费观看完整版| 欧美 日韩 国产 在线| 欧美日韩国产另类一区| 国产精品欧美激情在线| 一本久久a久久免费精品不卡| 亚洲av无码精品一区二区 | 久久久国产精华液| 亚洲国产日韩a在线播放性色| 亚洲国产综合久久| 在线免费观看日本一区| 国产精品九九九九| 亚洲成人av在线播放| 国产一级在线| 精品欧美一区二区三区精品久久 | 不卡av免费在线观看| 瑟瑟视频在线观看| 国产经典欧美精品| 成人一区二区三| 精品午夜久久福利影院 | 久久影院视频免费| 91ts人妖另类精品系列| 久久久亚洲高清| 亚洲欧美另类日本| 亚洲午夜久久久久| 日韩欧美一级大片| 欧美成人女星排名| 国产在线91| 欧美精品videos性欧美| 91成人在线| 国产精品av电影| 青草伊人久久| 91亚洲国产成人精品性色| 国产成人精品一区二区三区免费| 91精品天堂| 成人6969www免费视频| 视频一区视频二区视频三区高| 欧美毛片免费观看| 制服国产精品| 亚洲精品成人无限看| 各处沟厕大尺度偷拍女厕嘘嘘| 国内成+人亚洲+欧美+综合在线 | 牲欧美videos精品| 麻豆中文字幕在线观看| 另类图片国产| 无码无遮挡又大又爽又黄的视频| 国内精品免费在线观看| 丁香花五月婷婷| 大伊人狠狠躁夜夜躁av一区| av大全在线观看| 色哟哟在线观看一区二区三区| 国产免费高清av| 最新亚洲国产精品| 国产精品伦理| 久久久久久久久久久一区| 欧美日韩专区| 一级片免费在线观看视频| 国产精品入口麻豆九色| 久久国产波多野结衣| 在线看国产一区二区| 青春有你2免费观看完整版在线播放高清| 欧美日本中文字幕| 99re6在线精品视频免费播放| 成人免费淫片视频软件| 日本成人小视频| 亚洲综合在线网站| 久久久久久**毛片大全| 欧美三级午夜理伦| 亚洲国产黄色片| av有码在线观看| 国产精品自拍首页| 激情视频一区二区三区| 欧美老女人bb| 不卡的av在线| 91久久国产视频| 亚洲级视频在线观看免费1级| 欧美家庭影院| 国产精品av一区| 在线亚洲精品| 福利视频999| 国产精品大尺度| 国产理论视频在线观看| 久久伊人精品天天| 日韩精品久久久久久久软件91| 黄网站色视频免费观看| 先锋影音久久| 99精品视频国产| 91农村精品一区二区在线| 免费精品在线视频| 五月综合激情网| 一级特黄aa大片| 久久香蕉频线观| 国产午夜久久av| 久久精品xxx| 91在线精品秘密一区二区| 亚洲色图日韩精品| 在线成人av网站| 色在线视频网| 国内视频一区| 日韩成人一区二区三区在线观看| 91狠狠综合久久久久久| 欧美一区三区四区| 136福利第一导航国产在线| 蜜桃网站成人| 久久激情五月激情| 精品少妇一二三区| 亚洲精品在线看| 性欧美video高清bbw| 国产综合第一页| 日本午夜精品一区二区三区电影 | 国产男女无遮挡| 中文字幕精品—区二区四季| 91精品国产高潮对白| 亚洲美女www午夜| 国产传媒在线观看| 日韩午夜视频在线观看| 国产精品一区二区x88av| 国产一级做a爱片久久毛片a| 一个人看的www久久| 日韩在线亚洲| wwwwww.色| 亚洲国产乱码最新视频| 国产视频在线看| wwwxx欧美| 欧美在线资源| 手机在线国产视频| 天天亚洲美女在线视频| 在线观看黄av| 久久riav二区三区| 国产精品一区二区无线|