日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个详细的JTable使用例子

發布時間:2024/1/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个详细的JTable使用例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近需要使用JTable,第一次使用,很多不懂,到網上找了很多資料和例子,發現很多例子都沒有完全的實現操作數據庫里一張表的數據,摸了兩天終于懂了一點,寫了一個例子,把代碼直接復制,修改一下數據庫的連接就可以運行了.使用JTable操作數據庫的一張表,實現增刪改,顯示表里所有的數據,點擊''添加''按鈕在表格插入一行填寫數據保存到數據庫,可一次插入多行,一次可選擇任意多行進行刪除,一次可以修改多行的值.有寫得不好的地方希望大家指出,一起進步.

共九個類:

一:

package product;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.table.AbstractTableModel;

public class ProductTableModel extends AbstractTableModel {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
/**changeList用來存放被修改過的數據值,這樣做是為了一次修改多行多值,
* 保存的對象是ChangedProduct,只記錄被修改過的值.
*/
private static List changeList = new ArrayList();
private List list = new ArrayList();
private String[] column = { "Product_id", "Product Name",
??? "Product Description", "Status" };

public ProductTableModel() {
}

public ProductTableModel(List list) {
?? this();
?? setList(list);
}

public int getColumnCount() {
?? return column.length;
}

public int getRowCount() {
?? return list.size();
}
/**
* getValueAt方法就是使得數據在Table顯示出來,給每個單元格設值
*/
public Object getValueAt(int arg0, int arg1) {
?? ProductBean p = (ProductBean) list.get(arg0);
?? return getPropertyValueByCol(p, arg1);
}

public void addRow(int index, ProductBean p) {
?? if (index < 0 || index > list.size() - 1) {
??? list.add(p);
??? fireTableRowsInserted(list.size(), list.size());
?? } else {
??? list.add(index + 1, p);
??? fireTableRowsInserted(index, index);
?? }
}

public boolean deleteRow(int index) {
?? if (index >= 0 && index < list.size()) {
??? list.remove(index);
??? fireTableRowsDeleted(index, index);
??? return true;
?? } else
??? return false;
}

public boolean saveRow(int index, ProductBean p) {
?? if (index >= 0 && index < list.size()) {
??? list.set(index, p);
??? fireTableRowsUpdated(index, index);
??? return true;
?? } else
??? return false;
}

public ProductBean getRow(int index) {
?? if (index >= 0 && index < list.size()) {
??? return (ProductBean) list.get(index);

?? } else
??? return null;
}
public List getNewRow(){
?? List list=new ArrayList();
?? List listProduct=getList();
?? Iterator it=listProduct.iterator();
?? while(it.hasNext()){
??? ProductBean p=new ProductBean();
??? p=(ProductBean)it.next();
??? if(p.getProduct_id()==0){
???? list.add(p);
??? }
?? }
?? return list;
}

public List getList() {
?? return list;
}

public void setList(List list) {
?? this.list = list;
?? fireTableDataChanged();
}

public String getColumnName(int i) {
?? return column[i];
}

public void setColumn(String[] column) {
?? this.column = column;
}

public Object getPropertyValueByCol(ProductBean p, int col) {
?? switch (col) {
?? case 0:
??? return p.getProduct_id();
?? case 1:
??? return p.getProduct_name();
?? case 2:
??? return p.getProduct_desc();
?? case 3:
??? return p.getProduct_status();
?? }
?? return null;
}

public void setPropertyValueByCol(ProductBean p, String value, int col) {
?? switch (col) {
?? case 1:
??? p.setProduct_name(value);
??? break;
?? case 2:
??? p.setProduct_desc(value);
??? break;
?? case 3:
??? p.setProduct_status(value);
??? break;
?? }
?? fireTableDataChanged();
}

public boolean isCellEditable(int row, int column) {
?? return true;
}

/**
* setValueAt方法是使增加或修改值的時候生效,aValue就是你在單元格填的值,
* 要把這些值保存到數據源中
*/
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
?? ProductBean p = (ProductBean) list.get(rowIndex);
?? setPropertyValueByCol(p, aValue.toString(), columnIndex);
?? this.fireTableCellUpdated(rowIndex, columnIndex);
}

public static List getChangeList() {
?? return changeList;
}

public static void setChangeList(List changeList) {
?? ProductTableModel.changeList = changeList;
}

}


二:

package product;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableColumnModel;

public class ProductFrame extends JFrame {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
private JPanel panelTop = null;
private JLabel labHeader = null;
private JPanel panelBottom = null;
private JButton add = null;
private JButton delete = null;
private JButton save = null;
private JScrollPane scroll = null;
private JTable table = null;
private ProductTableModel model = null;
private List listProduct = null;

public ProductTableModel getModel() {
?? if (null == model) {
??? model = new ProductTableModel(listProduct);
??? //給model添加一個監聽,當修改的時候將觸發該事件,代表事件的類是ChangeEvent
??? model.addTableModelListener(new ChangeEvent(model));
??? return model;
?? }
?? return model;
}

public JLabel getLabHeader() {
?? if (null == labHeader) {
??? labHeader = new JLabel("Maintaince Product Information");
??? return labHeader;
?? }
?? return labHeader;
}

public JTable getTable() {
?? if (null == table) {
??? table = new JTable(getModel());
??? table.setEnabled(true);
??? table.setRowSelectionAllowed(true);
??? table.setBackground(Color.YELLOW);
??? /**
??? * 隱藏第一列ID,不顯示出來
??? */
??? DefaultTableColumnModel dcm = (DefaultTableColumnModel)table.getColumnModel();
????? dcm.getColumn(0).setMinWidth(0);
????? dcm.getColumn(0).setMaxWidth(0); ????
??? return table;
?? }
?? return table;
}

public JScrollPane getPanTable() {
?? if (null == scroll) {
??? scroll = new JScrollPane();
??? scroll.setViewportView(getTable());
??? return scroll;
?? }
?? return scroll;
}

public JPanel getPanelTop() {
?? if (null == panelTop) {
??? panelTop = new JPanel();
??? panelTop.setLayout(new FlowLayout(FlowLayout.CENTER));
??? panelTop.add(getLabHeader());
??? return panelTop;
?? }
?? return panelTop;
}

public JPanel getPanelBottom() {
?? if (null == panelBottom) {
??? panelBottom = new JPanel();
??? panelBottom.setLayout(new FlowLayout(FlowLayout.CENTER));
??? panelBottom.add(getAdd());
??? panelBottom.add(getDelete());
??? panelBottom.add(getSave());
??? return panelBottom;
?? }
?? return panelBottom;
}

public JButton getAdd() {
?? /**
?? * 點該按鈕的時候調用addProduct()方法,在數據源(listProduct)將
?? * 增加一個元素,沒設值前都是null.
?? */
?? if (null == add) {
??? add = new JButton("New");
??? add.addActionListener(new ActionListener() {
???? public void actionPerformed(ActionEvent e) {
????? addProduct();??
???? }

??? });
??? return add;
?? }
?? return add;
}

public JButton getDelete() {
?? if (null == delete) {
??? delete = new JButton("Delete");
??? delete.addActionListener(new ActionListener() {
???? public void actionPerformed(ActionEvent e) {
????? /**
????? * 支持一次選中多行后刪除
????? */
????? int[] rows=getTable().getSelectedRows();
????? if(rows.length>0){
????? int flag=JOptionPane.showConfirmDialog(null, "確定刪除?");
????? if(flag==JOptionPane.YES_OPTION)
????? deleteProduct();
????? }
????? else
?????? JOptionPane.showMessageDialog(null,"請選擇要刪除的行!");
???? }

??? });
??? return delete;
?? }
?? return delete;
}

public JButton getSave() {
?? if (null == save) {
??? save = new JButton("save");
??? save.addActionListener(new ActionListener() {
???? public void actionPerformed(ActionEvent e) {
????? saveProduct();
????? JOptionPane.showMessageDialog(null,"更新成功!");
???? }

??? });
??? return save;
?? }
?? return save;
}
public void addProduct() {
?? ProductBean p = new ProductBean();
?? getModel().addRow(getTable().getSelectedRow(), p);
}
public void saveProduct() {
?? DaoInterface dao=DaoFactory.getDao();
?? List changeList=getModel().getChangeList();
?? //如果有修改過就調用update方法
?? if(changeList.size()>0){
??? dao.update(changeList);
??? changeList.clear();
?? }
?? List newRow=getModel().getNewRow();
?? //如果是新增就調用saveList,支持一次增加多行
??????? if(newRow.size()>0){
??? dao.saveList(newRow);
??? getModel().setList(dao.getList());
??? getTable().updateUI();
??? newRow.clear();
??????? }
??
}
public void deleteProduct() {
?? /**支持一次刪除多行,先獲得所有選中的行,然后按照行數取得Product實例,
?? * 放進一個list,然后傳給操作數據庫的deleteList方法.
?? */
?? int[] rows=getTable().getSelectedRows();
?? ArrayList list=new ArrayList();
?? DaoInterface dao=DaoFactory.getDao();
?? for(int i=rows.length-1;i>=0;i--){
?? list.add(getModel().getRow(rows[i]));
?? getModel().deleteRow(rows[i]);
?? }
?? dao.deleteList(list);
?? getTable().updateUI();
?? list.clear();
}
public void initData() {
?? /**
?? * 初始化數據源,從數據庫里把數據拿出來,然后它會調用
?? * getValueAt方法來一個單元格一個單元格來設值,讓它顯示出來.
?? */
?? listProduct = new ArrayList();
???? DaoInterface dao=DaoFactory.getDao();
???? listProduct=dao.getList();
?? this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public ProductFrame() {
?? initData();
?? Container c = this.getContentPane();
?? c.setLayout(new BorderLayout());
?? c.add(getPanelTop(), BorderLayout.NORTH);
?? c.add(getPanelBottom(), BorderLayout.SOUTH);
?? c.add(getPanTable(), BorderLayout.CENTER);
?? this.setSize(new Dimension(600, 400));
?? this.setVisible(true);
}
public static void main(String[] args) {
?? ProductFrame frame = new ProductFrame();
?? frame.addWindowListener(new WindowAdapter() {
??? public void windowClosing(WindowEvent e) {
???? System.exit(0);
??? }
?? });
}
???
}

三:

package product;

public class ProductBean {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
private int product_id;
private String product_name;
private String product_desc;
private String product_status;

public String getProduct_name() {
?? return product_name;
}

public void setProduct_name(String product_name) {
?? this.product_name = product_name;
}

public String getProduct_desc() {
?? return product_desc;
}

public void setProduct_desc(String product_desc) {
?? this.product_desc = product_desc;
}

public String getProduct_status() {
?? return product_status;
}

public void setProduct_status(String product_status) {
?? this.product_status = product_status;
}

public int getProduct_id() {
?? return product_id;
}

public void setProduct_id(int product_id) {
?? this.product_id = product_id;
}

}

四:

package product;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBConnection {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
private static Connection conn;
public static Connection getConn() {
?? String driverName = "oracle.jdbc.driver.OracleDriver";
?? String url = "jdbc:oracle:thin:@192.168.0.66:1521:test";
?? String userName = "JACKTRAINING";
?? String pwd = "JACKTRAINING";
?? try {
??? Class.forName(driverName);
??? conn = DriverManager.getConnection(url, userName, pwd);
?? } catch (ClassNotFoundException e) {
??? System.out.println("裝載驅動出錯!");
?? } catch (SQLException e) {
??? System.out.println("獲取數據庫連接出錯!");
??? e.printStackTrace();
?? }

?? return conn;
}
}

五:

package product;


import java.util.ArrayList;
import java.util.List;

public interface DaoInterface {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
public List getList();
public void saveList(List list);
public void deleteList(List list);
public void update(List list);
}

六:

package product;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.JOptionPane;

public class DaoImpl implements DaoInterface {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
public List getList() {
?? Connection conn = JDBConnection.getConn();
?? String s1 = "select * from justin_jtable_product order by product_id asc";
?? PreparedStatement ps = null;
?? ResultSet rs = null;
?? List list = new ArrayList();
?? try {
??? ps = conn.prepareStatement(s1);
??? rs = ps.executeQuery();
?? } catch (SQLException e) {
??? System.out.println("取出全部數據出錯!");
??? JOptionPane.showMessageDialog(null, "取出全部數據出錯!");
??? e.printStackTrace();
?? }
?? try {
??? while (rs.next()) {
???? ProductBean p = new ProductBean();
???? p.setProduct_id(rs.getInt(1));
???? p.setProduct_name(rs.getString(2));
???? p.setProduct_desc(rs.getString(3));
???? p.setProduct_status(rs.getString(4));
???? list.add(p);
??? }
?? } catch (SQLException e) {
??? JOptionPane.showMessageDialog(null, "取出全部數據出錯!");
??? e.printStackTrace();
?? } finally {
??? try {
???? rs.close();
???? ps.close();
???? conn.close();
??? } catch (SQLException e) {
???? JOptionPane.showMessageDialog(null, "關閉數據連接時出錯!");
???? e.printStackTrace();
??? }
?? }
?? return list;
}

public void saveList(List list) {
?? String s1 = "";
?? Connection conn = JDBConnection.getConn();
?? PreparedStatement ps = null;
?? try {
??? Iterator it = list.iterator();
??? while (it.hasNext()) {
???? ProductBean p = (ProductBean) it.next();
???? String name = p.getProduct_name();
???? String desc = p.getProduct_name();
???? String status = p.getProduct_status();
???? int id = p.getProduct_id();
???? s1 = "insert into justin_jtable_product(product_name,"
?????? + "product_desc,product_status) values(?,?,?)";
???? ps = conn.prepareStatement(s1);
???? ps.setString(1, name);
???? ps.setString(2, desc);
???? ps.setString(3, status);
???? ps.executeUpdate();
??? }
?? } catch (SQLException e) {
??? System.out.println("添加數據時出錯!");
??? JOptionPane.showMessageDialog(null, "添加數據時出錯!");
??? e.printStackTrace();
?? } finally {
??? try {
???? ps.close();
???? conn.close();
??? } catch (SQLException e) {
???? JOptionPane.showMessageDialog(null, "關閉數據連接時出錯!");
???? e.printStackTrace();
??? }
?? }
}

public void deleteList(List list) {
?? String str = "delete from justin_jtable_product where product_id=?";
?? int id = 0;
?? Iterator it = list.iterator();
?? Connection conn = JDBConnection.getConn();
?? PreparedStatement ps = null;
?? try {
??? while (it.hasNext()) {
???? id = ((ProductBean) it.next()).getProduct_id();
???? ps = conn.prepareStatement(str);
???? ps.setInt(1, id);
???? ps.executeUpdate();
??? }
?? } catch (SQLException e) {
?? } finally {
??? try {
???? ps.close();
???? conn.close();
??? } catch (SQLException e) {
???? JOptionPane.showMessageDialog(null, "關閉數據連接時出錯!");
???? e.printStackTrace();
??? }
?? }
}

public void update(List list) {
?? Connection conn = JDBConnection.getConn();
?? PreparedStatement ps = null;
?? Iterator it = list.iterator();
?? int id = 0;
?? int col = 0;
?? String value = "";
?? String str = "";
?? try {
??? while (it.hasNext()) {
???? ChangedProduct ch = (ChangedProduct) it.next();
???? id = ch.getId();
???? col = ch.getCol();
???? value = ch.getValue();
???? switch (col) {
???? case 1:
????? str = "update justin_jtable_product set product_name=? where product_id=?";
????? break;
???? case 2:
????? str = "update justin_jtable_product set product_desc=? where product_id=?";
????? break;
???? case 3:
????? str = "update justin_jtable_product set product_status=? where product_id=?";
???? }
???? ps = conn.prepareStatement(str);
???? ps.setString(1, value);
???? ps.setInt(2, id);
???? ps.executeUpdate();
??? }
?? } catch (SQLException e) {
??? JOptionPane.showMessageDialog(null, "修改數據時出錯!");
??? e.printStackTrace();
?? } finally {
??? try {
???? ps.close();
???? conn.close();
??? } catch (SQLException e) {
???? JOptionPane.showMessageDialog(null, "關閉數據連接時出錯!");
???? e.printStackTrace();
??? }
?? }
}
}


七:

package product;

public class DaoFactory {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
synchronized public static DaoInterface getDao(){
DaoInterface dao=null;
if(dao==null){
dao=new DaoImpl();
return dao;
}
return dao;
}
}

八:

package product;

public class ChangedProduct {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
private int id;
private int col;
private String value;

public int getId() {
?? return id;
}

public void setId(int id) {
?? this.id = id;
}

public String getValue() {
?? return value;
}

public void setValue(String value) {
?? this.value = value;
}

public int getCol() {
?? return col;
}

public void setCol(int col) {
?? this.col = col;
}
}

九:

package product;

import java.util.ArrayList;
import java.util.List;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;

public class ChangeEvent implements TableModelListener {


/**
* 神戀科技:http://suhuanxi.javaeye.com
*/
/**
* 監聽table被改動的事件,只要目的是用來記錄被修改過的值,
* 這樣做可以一次任意行的修改值,修改一個單元格的值就記錄一次,
* 主要記錄id,新值,烈數.
*/
ProductTableModel model = null;
public ChangeEvent(ProductTableModel model) {
?? this.model = model;
}
List list = model.getChangeList();
int id = 0;
String value = "";

public void tableChanged(TableModelEvent arg0) {
?? int row = arg0.getFirstRow();
?? int col = arg0.getColumn();
?? if (col != -1) {
??? ChangedProduct cp = new ChangedProduct();
??? id = ((Integer) model.getValueAt(row, 0)).intValue();
??? if (id != 0) {
???? value = model.getValueAt(row, col).toString();
???? cp.setId(id);
???? cp.setCol(col);
???? cp.setValue(value);
???? list.add(cp);
??? }
?? }
}

}

總結

以上是生活随笔為你收集整理的一个详细的JTable使用例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

av中文天堂在线 | 久热免费在线观看 | 久久tv视频 | 国产精品网站 | 在线播放 亚洲 | 韩日在线一区 | 久久亚洲在线 | 国产va精品免费观看 | 成人免费一级片 | 久久福利精品 | 亚洲黄色成人网 | 天天躁天天操 | 日韩在线观看的 | 911精品美国片911久久久 | 色999精品| 欧美另类sm图片 | 成人欧美一区二区三区在线观看 | 国产黄色片一级 | 久久丁香 | 亚洲国产精彩中文乱码av | 午夜婷婷综合 | 欧美久久久一区二区三区 | 在线色吧 | 欧美性猛片| 免费看污黄网站 | 午夜国产成人 | av资源在线看 | av丝袜在线 | 国产日韩精品一区二区三区在线 | 国产成人精品一区二区三区在线观看 | 国产成人精品在线观看 | 久久国产精品一区二区三区四区 | 人人添人人| 久久久久女人精品毛片九一 | 香蕉精品在线观看 | 9999精品 | 在线亚洲精品 | 日日干日日操 | 香蕉免费 | 国产精品一区二区美女视频免费看 | 欧美精品亚洲二区 | 久久久久免费精品国产小说色大师 | 日韩欧美一级二级 | 久久久91精品国产一区二区三区 | 国产成人精品在线播放 | 亚洲视频 在线观看 | 中文字幕二区三区 | 免费在线黄色av | 国产午夜免费视频 | 日韩欧美高清一区二区三区 | 日本精品视频一区二区 | www.色com| 国产精品四虎 | 亚洲精品美女久久 | av在线中文| 亚洲精品高清视频在线观看 | 精品视频在线观看 | 天海翼一区二区三区免费 | 欧美天堂影院 | 999国产 | 激情www | 不卡精品 | 天天艹天天 | 国产精品久久久久久久久大全 | 五月激情婷婷丁香 | 久久精品视频在线观看 | 日日爱夜夜爱 | 日日草视频| 日韩特级毛片 | 一区二区三区四区在线免费观看 | 粉嫩高清一区二区三区 | 狠狠躁夜夜a产精品视频 | 九九热在线免费观看 | 精品黄色在线观看 | 最近免费中文字幕 | 国产精品久久亚洲 | 日韩一区二区免费视频 | 亚洲成色 | 亚洲成av人电影 | 久久久综合香蕉尹人综合网 | 国产精品永久久久久久久www | av在线a| 亚洲视频 在线观看 | 激情中文字幕 | 最近中文字幕免费av | 草久久精品 | 国产精品久久久久久久久久久杏吧 | 99热最新网址| 九草在线观看 | 99人久久精品视频最新地址 | 亚洲三级在线免费观看 | 婷婷电影在线观看 | 久久久国产精品成人免费 | 国产 字幕 制服 中文 在线 | 黄色av一区| 久草在线视频免赞 | 中文字幕日韩伦理 | 午夜私人影院 | 欧美日韩中文字幕在线视频 | 国产成人精品一区二 | 国产成人精品福利 | 精品亚洲视频在线 | 手机看片1042| 色av色av色av | 在线免费观看成人 | 午夜影院一级 | 亚洲激情电影在线 | 在线观看国产v片 | 中文字幕免费久久 | 国产手机在线观看 | 国产又粗又猛又爽又黄的视频先 | 24小时日本在线www免费的 | 99在线热播精品免费99热 | 午夜久久精品 | 成人三级av | 91喷水 | 国产精品免费不卡 | 日韩av免费观看网站 | 亚洲在线精品 | 久久国产精品免费一区 | 一级做a视频 | 在线观看日韩精品 | 国产视频2 | 久草在线手机观看 | 中文字幕免费观看全部电影 | 国产成人精品日本亚洲999 | 国产精品成人一区二区三区 | 99视频免费观看 | 天天爽夜夜爽精品视频婷婷 | 亚洲视频电影在线 | 日韩啪视频 | 国产91精品一区二区麻豆亚洲 | 99精品一级欧美片免费播放 | 中文字幕av免费 | 在线免费视频 你懂得 | 久久99网站 | 天天草天天操 | 美女福利视频一区二区 | 午夜视频不卡 | 色wwww| 天天拍天天草 | 人人插人人舔 | 91免费的视频在线播放 | 丁香婷婷激情网 | 成人av高清在线 | 国产亚洲精品bv在线观看 | 在线观看免费一区 | 92中文资源在线 | 在线播放国产一区二区三区 | 精品99视频 | 欧美日韩中文国产一区发布 | 国精产品永久999 | 亚洲久在线| 午夜免费视频网站 | 免费日韩在线 | 午夜婷婷网| 中文字幕在线观看2018 | 亚州av成人 | 在线观看日韩精品视频 | 久久一区二区三区国产精品 | 国产探花视频在线播放 | 色97在线| 字幕网av | 综合久久综合久久 | 亚洲精选在线 | 日本中文字幕视频 | 深夜福利视频在线观看 | 国产精品成人一区二区三区 | 成人在线播放免费观看 | 国产精品乱码久久久久 | japanese黑人亚洲人4k | 久久久久久久久综合 | 四虎在线永久免费观看 | 中文字幕日韩高清 | 一区二区不卡高清 | 亚洲黄a | 日本视频久久久 | 国产小视频免费在线网址 | 免费看色视频 | 国内精品视频久久 | 国产精品午夜久久 | 毛片网站免费在线观看 | 91麻豆精品国产91 | 色婷婷激情电影 | 久久免费电影网 | 超薄丝袜一二三区 | 亚洲欧洲成人精品av97 | 夜色成人网 | 国产精品国内免费一区二区三区 | 国产毛片久久久 | 日本视频网| 亚洲视频456 | 在线黄色观看 | 久久精品国产一区二区电影 | 国产精品久久久久久av | 日本久久久久久科技有限公司 | 久草国产在线观看 | 国产人成免费视频 | 中文字幕在线视频第一页 | 国产午夜精品一区二区三区欧美 | 特级xxxxx欧美 | 国产午夜精品一区 | 国产精品永久在线观看 | 99久久久国产免费 | 国产偷在线 | 日韩中文在线播放 | 97在线视频免费播放 | 97超碰在线久草超碰在线观看 | 亚洲国产中文字幕在线视频综合 | 久艹视频在线观看 | 日本一区二区三区免费看 | 色永久免费视频 | 国产精品你懂的在线观看 | 摸bbb搡bbb搡bbbb | 视频一区二区国产 | 99精品一级欧美片免费播放 | 国产精品9999 | 国产精品久久久免费 | 天天色 天天 | 久久久影院一区二区三区 | 色av资源网 | 日韩一区二区免费视频 | 久久成人国产精品一区二区 | 久久九九九九 | 日韩视频一区二区在线 | 久久视频二区 | 有码中文字幕在线观看 | 干天天 | 狠狠狠狠狠色综合 | 99精品国产在热久久下载 | 日韩电影精品一区 | 国产精品久久久久久久99 | 超碰在线公开 | www国产亚洲精品久久麻豆 | а天堂中文最新一区二区三区 | 日韩高清免费观看 | 色五丁香| 美女国产| 精品久久网站 | 久久国产精品影片 | av在线电影播放 | 久久精品国产免费看久久精品 | 日韩中文字幕第一页 | 国产成人精品av | 99自拍视频在线观看 | 99福利片 | 欧美另类视频 | 在线视频日韩一区 | 91麻豆操| 最新中文字幕在线资源 | av在线电影免费观看 | 99久久99视频| 精品国产欧美一区二区三区不卡 | 国产精品9999久久久久仙踪林 | 一区二区三区在线免费观看视频 | 高清一区二区三区av | 国产精品久99 | 五月婷影院 | 狠狠色丁香久久综合网 | 国产成人精品av在线观 | 亚洲天堂va | www.五月婷婷 | 国产在线第三页 | 日韩精品第一区 | 日韩 在线观看 | sesese图片| 国产拍在线 | 久草在线视频资源 | 91精品在线视频观看 | 成人全视频免费观看在线看 | 伊人射| 精品久久久久国产免费第一页 | 天堂中文在线视频 | 国产黄色片在线免费观看 | 亚洲成av人片在线观看www | 免费黄av| 久久草网 | 国产精品国产亚洲精品看不卡 | 久久精品视频在线观看 | 亚洲精品麻豆 | 久久久久久久久久久久99 | sesese图片| 国产一级免费观看视频 | 青草视频网 | 日韩com| 国产成人香蕉 | 久久一区二 | 亚洲成人精品在线观看 | 高清av网站| 99精品久久99久久久久 | 九九九视频在线 | 一区二区三区在线影院 | 亚洲高清不卡av | 国产一级免费在线观看 | 国产精品免费久久久 | 不卡的av在线播放 | 丁香婷婷久久久综合精品国产 | 国产精品第10页 | 午夜手机电影 | 插综合网 | 国产手机在线播放 | 在线视频 91 | 最近更新好看的中文字幕 | 91mv.cool在线观看 | 成人久久18免费网站图片 | 久久久精选 | 国产日韩欧美在线免费观看 | 国产精品欧美日韩在线观看 | 日韩在线视频播放 | 国产一区二区手机在线观看 | 精品久久中文 | 天天综合网入口 | 久久久久99精品国产片 | 麻豆视频免费版 | 色偷偷88欧美精品久久久 | 伊人电影在线观看 | 久久免费视频99 | 国产性天天综合网 | 91麻豆免费版 | 日本中文在线观看 | 久久高清国产视频 | 日韩欧在线 | 欧美成人va | 久久欧洲视频 | 24小时日本在线www免费的 | 国产自产高清不卡 | 婷婷综合成人 | 免费在线观看的av网站 | 日日日干 | 免费看黄在线 | 久久精品波多野结衣 | 人成在线免费视频 | 最新国产在线视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 六月丁香伊人 | 色在线免费观看 | 亚洲精品中文字幕在线 | 日韩av看片| 97超碰人人模人人人爽人人爱 | 成人在线免费小视频 | 免费在线黄色av | 久久免费播放视频 | 国产电影一区二区三区四区 | 国产高清视频在线播放一区 | 成人av一级片 | 婷婷激情综合 | 亚洲观看黄色网 | 久久国产精品免费观看 | 成人一级黄色片 | 91九色精品女同系列 | 久久精品99北条麻妃 | 日日摸日日碰 | 人人爽人人爽人人片av免 | 久久视频免费观看 | 伊人天天狠天天添日日拍 | 久av在线 | 欧洲视频一区 | 欧美一区二区伦理片 | 日韩中文字幕网站 | 亚洲欧洲国产日韩精品 | 又黄又刺激视频 | 美女视频黄免费的 | 日本爽妇网 | 久久免费av电影 | 综合色在线 | 91中文字幕视频 | 久久免费视频在线观看6 | 麻豆系列在线观看 | 久久久久久久看片 | 精品久久久久久综合日本 | 精品久久久亚洲 | 人人讲 | 中文字幕在线观看第一区 | 国产精品免费在线播放 | 色吊丝av中文字幕 | 黄色av播放 | 狂野欧美激情性xxxx欧美 | 久久99久久久久久 | 日韩在线中文字幕 | 激情xxxx| 日韩av影片在线观看 | 成人av久久 | 波多野结衣在线中文字幕 | 久久久国产精品视频 | 日韩一级理论片 | 中文免费在线观看 | www黄色com| 狠狠做深爱婷婷综合一区 | 国产成人精品国内自产拍免费看 | 精品久久久久久亚洲综合网站 | 成人国产精品一区二区 | 日日操操 | 亚洲视频99| 狂野欧美激情性xxxx欧美 | 又黄又爽又无遮挡的视频 | 成人av在线看 | 婷婷色综合色 | 在线免费观看黄网站 | 精品专区一区二区 | www.五月激情.com | 91精品啪在线观看国产 | 欧美日韩午夜在线 | 久久一及片 | av片在线观看免费 | 国产中文字幕第一页 | 77国产精品 | 色天天综合久久久久综合片 | 亚洲精品国产免费 | 色吊丝在线永久观看最新版本 | 最近中文字幕国语免费高清6 | 99产精品成人啪免费网站 | 国产麻豆剧传媒免费观看 | www.色午夜.com | 麻豆 videos | 九九热精 | 国产精品久久久久久久久久三级 | 国产亚洲精品福利 | 日韩精品一区二区免费视频 | 精品在线不卡 | 午夜精品999| 久久99热国产 | 西西大胆免费视频 | 天天色天天草天天射 | 免费观看性生活大片3 | 日韩中文字幕免费视频 | 黄色小说免费在线观看 | 亚洲精品美女久久久久 | 日韩精品2区 | 日韩欧美91| 天堂成人在线 | 亚洲精品国产欧美在线观看 | 99re久久资源最新地址 | 亚洲美女在线国产 | 狠狠色丁香婷婷综合久小说久 | 亚洲开心色 | 亚洲第一区在线播放 | 国产精品黑丝在线观看 | 国产九九在线 | 黄色aaa毛片| 99热在线这里只有精品 | 久久国产经典 | 免费高清无人区完整版 | 波多野结衣一区二区三区中文字幕 | 18国产精品福利片久久婷 | 99精品热视频只有精品10 | 在线观看91视频 | 免费av看片| 欧美激情综合五月色丁香 | 午夜视频在线观看一区二区三区 | 黄色91在线观看 | 亚洲影院一区 | 色婷婷av国产精品 | 天天激情站 | 久久黄视频 | 久久99精品久久只有精品 | 成人欧美日韩国产 | 国产免费高清视频 | 国产精品不卡在线观看 | 天天拍天天干 | 亚洲一区网站 | 91自拍成人 | 国产精品色视频 | 久久久久久久久影院 | 久久91久久久久麻豆精品 | 看全黄大色黄大片 | 99久热| 婷婷国产精品 | 911精品视频 | 国产 日韩 中文字幕 | 国产视频精品网 | 国产精品短视频 | 日韩网页| 国产成人亚洲在线电影 | 中文字幕韩在线第一页 | 超碰国产在线观看 | 日韩一区二区三区免费电影 | 日本在线免费看 | 99久久超碰中文字幕伊人 | 欧美综合干 | 成人黄色电影视频 | 久操免费视频 | 奇米影视777影音先锋 | 亚洲 中文 在线 精品 | 手机色站 | 日韩精品免费一区二区三区 | 欧美日韩国产精品一区二区 | 在线观看日本韩国电影 | 国产日韩精品在线观看 | 少妇按摩av | 中文字幕五区 | 97精品久久人人爽人人爽 | 麻豆国产露脸在线观看 | 最近中文字幕免费观看 | 精品国产免费看 | 欧美成年黄网站色视频 | 色婷婷导航 | 亚洲精品久久久久999中文字幕 | 久久午夜电影 | 蜜臀久久99精品久久久无需会员 | 久久久久久网址 | 一级a毛片高清视频 | 日本中文不卡 | 中文字幕在线观看国产 | 视频一区二区精品 | 天天射天天舔天天干 | 精品国产大片 | 狠狠操操| 国产 日韩 在线 亚洲 字幕 中文 | 国产精品久久久久一区二区三区 | 亚洲视频中文 | 激情电影在线观看 | 麻豆视频在线观看免费 | 一级α片免费看 | 一个色综合网站 | 国产精品色婷婷视频 | 91视频下载| 天天干天天摸天天操 | 国产精品乱码一区二区视频 | 欧美日韩高清一区 | 97国产大学生情侣白嫩酒店 | 西西4444www大胆无视频 | 欧美日在线观看 | 91丨九色丨国产丨porny精品 | 精品二区视频 | 91av官网 | 亚洲一区黄色 | 黄色片视频在线观看 | 久久久久99999 | 天天操夜操 | 亚洲精品免费在线观看视频 | 国产精选视频 | 91大神视频网站 | 国产免费精彩视频 | 在线a人v观看视频 | 久久国产精品第一页 | 精品视频一区在线 | 人人插人人费 | 草久视频在线 | 欧美日韩视频在线播放 | 亚洲国产片色 | 九九久久免费 | 日韩高清av| 国产精品免费视频一区二区 | 少妇激情久久 | 日韩在线高清视频 | 天天干中文字幕 | 亚洲成人av在线电影 | 亚洲视频播放 | www激情久久| 精品福利在线观看 | 日日夜夜婷婷 | 狠狠色丁香婷婷综合久久片 | 国产亚洲欧美精品久久久久久 | 亚洲欧洲一区二区在线观看 | 亚洲激情在线观看 | 成年人国产在线观看 | 日本三级香港三级人妇99 | 免费久久视频 | 国产精品乱码久久 | 中文字幕成人在线 | 三级在线国产 | 91九色在线观看 | 在线播放精品一区二区三区 | 狠狠的操狠狠的干 | 成年人电影毛片 | 免费看久久久 | 综合久色| 亚洲国产欧美一区二区三区丁香婷 | 成年人免费在线观看网站 | 亚洲电影影音先锋 | 9免费视频 | 久久人人做 | 在线a视频| 18做爰免费视频网站 | 干干干操操操 | 欧美日韩在线视频一区二区 | 国产特级毛片aaaaaa | www.看片网站 | 又色又爽又黄高潮的免费视频 | 国产中文字幕亚洲 | 日韩av电影手机在线观看 | 973理论片235影院9 | 伊人一级 | 三级小视频在线观看 | 亚洲v精品 | 99re8这里有精品热视频免费 | 亚洲欧洲精品一区 | 亚洲一区二区三区在线看 | 亚洲乱码在线 | 国产永久免费观看 | 99久久久免费视频 | 狠狠色综合网站久久久久久久 | 国产91精品在线观看 | 婷婷色网站 | 精品一区免费 | 免费精品视频在线 | 91九色精品女同系列 | 成人app在线免费观看 | 中午字幕在线 | 久久久免费少妇 | 国产精品免费成人 | 久久看看| av黄色亚洲 | 国产九九九九九 | 欧美色综合久久 | 久久精品一区八戒影视 | av黄色大片 | 韩日三级av | 999久久久国产精品 高清av免费观看 | 欧美淫视频 | 天天艹 | 中文区中文字幕免费看 | 色a在线观看 | 西西www4444大胆在线 | 在线观看网站av | 国产一区二区在线免费播放 | 美女网站在线观看 | 亚洲精品久久久久58 | 日韩中文字幕在线 | 一区二区男女 | 国产高清在线一区 | 狠狠色香婷婷久久亚洲精品 | 99高清视频有精品视频 | 中文字幕免费播放 | 9992tv成人免费看片 | 国产三级精品三级在线观看 | 国产色婷婷在线 | 五月天综合激情 | 最近中文字幕免费av | 日韩欧美黄色网址 | 激情综合五月 | 亚洲dvd| 麻豆久久精品 | 国产精品久久久久久久久久久久午夜片 | 国产69久久精品成人看 | 国产最新福利 | 欧美日韩国产二区三区 | 超级碰碰碰免费视频 | 日韩免费一级电影 | 美女在线观看av | 国产区久久| 欧美日本啪啪无遮挡网站 | 国产福利久久 | 24小时日本在线www免费的 | 五月婷婷视频在线 | 精品一区二区免费 | 久久高清视频免费 | 一区 二区电影免费在线观看 | 国产精品孕妇 | 91免费国产在线观看 | 激情网五月婷婷 | 99电影| 亚洲视频在线观看免费 | 97人人澡人人添人人爽超碰 | 精品久久五月天 | 中文字幕日韩有码 | 91麻豆视频网站 | 97免费公开视频 | 福利视频第一页 | 香蕉久草在线 | 日韩欧美精品一区二区三区经典 | 999久久国精品免费观看网站 | a级国产乱理论片在线观看 特级毛片在线观看 | 日日碰狠狠添天天爽超碰97久久 | 亚州五月| 国产精彩视频一区二区 | 国产69熟 | 天天操天天怕 | 国产精品久久久久久久免费大片 | 2019免费中文字幕 | 亚洲伊人第一页 | 在线观看的av网站 | 91免费观看视频网站 | av在线最新 | 九九免费在线观看视频 | 探花视频免费观看高清视频 | 一区二区激情视频 | 欧美精品久久久久 | 国产一级做a | 高清av在线 | 久久国产精品精品国产色婷婷 | 欧美午夜精品久久久久久浪潮 | 日本少妇视频 | 97操碰 | 亚洲久在线 | 成年人免费看片 | 国产视频一 | 视频1区2区 | 日韩精选在线观看 | 久久精品4 | 国产精品1024 | 亚洲国产免费网站 | 天天操比| www.色午夜.com| av 一区 二区 久久 | 国产亚洲一区 | 中文字幕久久精品一区 | 五月婷香蕉久色在线看 | 伊人国产在线播放 | 中文字幕在线影院 | 成人精品一区二区三区中文字幕 | 久热av在线| 91成人在线看 | www婷婷| 日韩av电影国产 | av中文字幕日韩 | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲一区二区精品3399 | 丁香资源影视免费观看 | 狠狠色噜噜狠狠 | 日批在线观看 | 日韩成人精品 | 国产成人a亚洲精品v | 黄色成人91 | www国产亚洲精品久久网站 | 国产午夜一区 | 99精品网站| 天天射成人 | 国产精品99久久99久久久二8 | 久久呀| 日本精品一区二区三区在线播放视频 | 乱男乱女www7788 | 久久亚洲私人国产精品 | 久久成人国产精品免费软件 | www国产亚洲精品 | 国产免费黄视频在线观看 | 久久亚洲精品电影 | 欧美一级特黄aaaaaa大片在线观看 | 夜夜看av | 欧美日韩国产在线观看 | 亚洲草视频 | 丁香婷婷基地 | 开心激情综合网 | av中文在线播放 | 亚洲成人黄色在线 | 免费福利视频导航 | 最新av中文字幕 | 精品一区 精品二区 | 国产美女久久 | 国产一区二区免费在线观看 | 亚洲精品乱码久久久久久高潮 | 91福利视频在线 | 高清视频一区 | 日韩免费视频线观看 | 丁香六月天婷婷 | 天天爽天天摸 | 日韩精品久久久 | 久久69精品久久久久久久电影好 | 日韩在线视频观看 | 黄色成品视频 | 手机看片中文字幕 | 亚洲天堂色婷婷 | 欧美一区二区三区免费看 | 黄色小说在线免费观看 | 99视频在线免费 | 美女视频久久 | 国产精品高清在线观看 | 久久国际影院 | 男女视频久久久 | 亚洲dvd | 午夜精品一区二区三区在线 | 成人在线视频免费观看 | 亚洲美女在线国产 | 国产亚洲精品中文字幕 | 久久久久婷 | 中文字幕在线观看的网站 | 草莓视频在线观看免费观看 | 亚洲在线网址 | 97超碰精品 | 日韩在线视频网站 | 国产视频在线观看一区 | 免费看污的网站 | 成人a视频在线观看 | 久久国产福利 | 精品国产一区二区三区久久 | 91九色丨porny丨丰满6 | 成人一区在线观看 | 亚州精品视频 | 色网站在线观看 | 蜜桃视频在线视频 | 亚洲丝袜一区二区 | 国产亚洲成人网 | 97av.com| 国产精品色婷婷 | 欧美国产一区二区 | 91黄色影视| 国产日韩欧美中文 | 免费日韩一区二区三区 | 国内精品久久久久影院一蜜桃 | 久久99国产精品久久 | 天天综合色网 | 美女免费视频黄 | 亚洲精品自在在线观看 | 久久久国产成人 | 日韩精品一区二区三区免费视频观看 | 国产精品亚洲综合久久 | 午夜在线看片 | 五月婷婷操| 九九在线视频免费观看 | 亚洲国产午夜视频 | 国产精品青青 | 色婷婷综合成人av | 四虎影视成人永久免费观看视频 | 色偷偷97| 欧美电影在线观看 | 黄色免费看片网站 | 亚洲综合在线视频 | 免费在线观看一区二区三区 | 欧美日韩视频免费 | 国产日产欧美在线观看 | 日韩动态视频 | 五月婷久 | 五月天com | 国产精国产精品 | 久久久高清一区二区三区 | 亚洲精品国产精品乱码在线观看 | 国产一区观看 | 国产福利一区在线观看 | 91精品国产乱码久久 | 色多视频在线观看 | 亚洲视频一区二区三区在线观看 | 国产一二区视频 | 黄色小说免费在线观看 | 国产精品3 | 成人久久久久 | 国产97在线观看 | av在线免费网 | 久久久久久久久久久高潮一区二区 | 91在线在线观看 | 国产精品你懂的在线观看 | 在线视频你懂 | 日韩高清观看 | 国产精品99爱 | 最近更新好看的中文字幕 | 国产一级久久久 | 日韩在线视频一区二区三区 | 四虎在线观看网址 | 国产精品久一 | jizz18欧美18 | 婷婷久草 | 久久精品成人热国产成 | 亚洲最新在线 | 亚洲草视频| av免费在线看网站 | 一区二区欧美在线观看 | 91成人在线免费观看 | 香蕉影视app | 五月天色中色 | 一本一本久久a久久精品综合小说 | 制服丝袜一区二区 | 在线看片视频 | 国产精品va最新国产精品视频 | 9999国产精品 | www.色五月.com | 97综合网 | 中文字幕专区高清在线观看 | 福利一区二区在线 | 少妇视频一区 | 在线观看av中文字幕 | 337p日本欧洲亚洲大胆裸体艺术 | 国语精品免费视频 | 一区 在线 影院 | 欧美亚洲国产精品久久高清浪潮 | 中文字幕在线观看一区二区 | 欧美国产在线看 | 九九热有精品 | 一区二区三区四区五区在线视频 | 国产视频 亚洲视频 | 久草视频免费播放 | 国产精品自在欧美一区 | www婷婷 | 天堂在线一区 | 国产精品久久久久999 | 又湿又紧又大又爽a视频国产 | a电影免费看 | 综合久久综合久久 | 99视频在线精品国自产拍免费观看 | 天天碰天天操视频 | 伊人狠狠色丁香婷婷综合 | 久久久久麻豆 | 日韩国产精品久久久久久亚洲 | 国产色一区 | 亚洲国产精久久久久久久 | 欧美一级免费在线 | 国产精品久久久久久久电影 | 91精品一区在线观看 | www.香蕉视频 | 九九热1 | 亚洲91视频 | 日日操天天操夜夜操 | 超碰在线97观看 | 久久久久免费精品国产 | 精品黄色在线观看 | 精品国产91亚洲一区二区三区www | 99精品视频免费看 | 欧美天天射 | 国产一线二线三线性视频 | 色综合久久网 | 中文字幕国产精品一区二区 | 五月开心激情网 | 韩国av免费 | a级国产片 | av中文在线播放 | www久久99 | 日韩av片无码一区二区不卡电影 | 丁香六月网 | 美女国内精品自产拍在线播放 | 六月丁香婷婷网 | 黄污视频大全 | 成人a级黄色片 | 亚洲91av | 99色免费| 免费av网站在线看 | 国产夫妻自拍av | 久久免费毛片 | 免费看片成人 | 久久福利电影 | 国产免费片 | 欧美综合在线视频 | 五月综合激情婷婷 | 日韩理论电影网 | 在线观看国产v片 | 少妇超碰在线 | 夜夜躁狠狠燥 | 成年人视频在线观看免费 | av一级免费 | 欧美日本在线视频 | 成人黄色大片在线免费观看 | 欧美天天干 | 中文字幕在线视频免费播放 | 欧美一区二区在线 | 亚洲精品在线免费看 | 91视频这里只有精品 | 天天插综合 | 91一区啪爱嗯打偷拍欧美 | 精品国产乱码 | 精品中文字幕在线 | 亚洲精品一区二区三区在线观看 | 亚洲一区二区三区四区精品 | 国产手机视频 | 成年人黄色免费看 | 国产成人精品免高潮在线观看 | 久久高清免费观看 | 激情五月在线观看 | av在线成人 | 亚洲手机天堂 | 人人精久 | 91网在线| 婷婷免费在线视频 | 日韩av一区二区三区四区 | 亚洲aaa级| 中文字幕影视 | 精品xxx| 在线免费黄色片 | 日韩中文字幕免费电影 | 成人av高清在线 | 九精品| 成人在线免费视频 | 久久爱影视i | 国产一区二区三区视频在线 | 日韩久久精品一区二区 | 丁香六月在线 | 91成人区| 欧美日本一二三 | 黄色三级免费片 | 中文字幕电影网 | 中文字幕在线观看视频一区二区三区 | 国产精品videossex国产高清 | 国产精品视频线看 | 五月婷影院| 成人av在线网址 | 欧美日韩久久不卡 | 亚洲国产精品一区二区久久hs | 日韩美女久久 | 欧美亚洲一级片 | 91网站免费观看 | 国内揄拍国产精品 | 日韩欧美一区二区三区免费观看 | 亚洲精品乱码久久 | 国产精品国产三级国产 | 国产精品一区二区在线观看免费 | 久久成年人网站 | 午夜精品一二区 | 亚洲黄网站 | 国产我不卡| 激情久久一区二区三区 | 久久国产精品一国产精品 | 精品女同一区二区三区在线观看 | 色综合久久综合网 | 亚洲国产精品va在线看黑人 | 三级a毛片| 亚洲 欧洲 国产 精品 | 天天操狠狠操 | 欧美一区视频 | 一区二区三区免费在线观看 | 国产区精品视频 | 日本xxxxav | 福利av影院|