日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python桌面开发吐血_想用java写个桌面小demo,就布局都差点写吐血了,学艺不精...

發布時間:2025/3/11 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python桌面开发吐血_想用java写个桌面小demo,就布局都差点写吐血了,学艺不精... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

demo簡略需求

項目背景

很多文件重復存放,除了管理混亂,還會對患有強迫癥用戶的身心造成10000點的傷害...其實就是360云盤當時上傳了有上傳,造成很多重復的圖片+視頻,前陣子360個人云盤“倒閉”,電腦日夜兼程,始終把圖片下了下來,下下來后,作為重度強迫癥患者的我,看著無數張圖片里面n多重復文件,吃不香睡不著....

點擊“載入”,默認載入上次目錄,若是第一次,默認載入文檔圖片目錄,同時彈出“選擇路徑”菜單。選擇需要載入的文件目錄后,如果跟現載入的不一樣,則中斷載入操作,重新載入新路徑。若一樣,則繼續載入;

圖片預覽,默認顯示第一張,如果用戶點擊選擇某一張,則圖片預覽變為用戶選中的;

點擊去重,彈出“重速度”(多線程),“重性能”(單線程)

點擊撤銷,恢復去重時刪除的文件

去重:先判斷文件名(除去“ - 副本”、“(1)”之類結尾的字符)是否重復,再判斷文件大小+文件類型是否一樣,如果都一樣,則計算文件的md5值,通過md5值來判斷。

第一次啟動時,彈出倒計時框,提示去重撤銷需要創建一個隱藏文件,如果不需要撤銷,可以打鉤,不創建隱藏文件,而是直接刪除;

彈出免責聲明,數據無價,請確認再去重(刪除)。

UI樣圖,如下圖

------------------------------------------------------------------------------------------

想用java寫個桌面小demo,就布局都差點寫吐血了,最終還是沒學好,哎,都怪學藝不精

界面實現代碼

package zuiquchong;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.GridLayout;

import javax.swing.BorderFactory;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.SwingConstants;

/**

* @author 蘇寶伢 E-mail:by.su@qq.com

* @version 創建時間: 2017年4月5日 下午12:47:32

*/

public class RemovalUI extends JFrame{

JPanel JPanelTitle,JPanelTextArea,JPanelLblPreview,JPanelOperation,JPanelContainer,JPanelLblStatusBar;

JButton btnLoader,btnRemoval,btnCancel,btnHistory;

JTextArea displayContent;

JLabel lblTitle,lblPreviewContent,lblStatusBar;

public RemovalUI(){

super("最去重文件管理器");

initialization();

}

public static void main(String[] args) {

new RemovalUI();

}

//初始化UI窗體

public void initialization(){

buildComponent();

addComponentToPanel();

componentStyle();

uiLayout();

this.setSize(800, 600);

this.setResizable(false); //不能改變大小

this.setVisible(true); //設置窗口可見

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//創建各組件對象

public void buildComponent(){

JPanelTextArea = new JPanel();

JPanelContainer = new JPanel();

JPanelLblPreview = new JPanel();

JPanelOperation = new JPanel();

JPanelTitle = new JPanel();

JPanelLblStatusBar = new JPanel();

displayContent = new JTextArea(30,48);

lblTitle = new JLabel("最去重文件管理器",SwingConstants.CENTER);

lblPreviewContent = new JLabel();

btnLoader = new JButton("載入");

btnRemoval = new JButton("去重");

btnCancel = new JButton("撤銷");

btnHistory = new JButton("歷史記錄");

lblStatusBar = new JLabel("by不最醉不龜歸 | e-mail:by.su@qq.com",SwingConstants.RIGHT);

}

//往容器中添加組件

public void addComponentToPanel(){

this.add(JPanelTitle);

//this.add(JPanelTextArea);

this.add(JPanelContainer);

this.add(JPanelLblStatusBar);

JPanelTitle.add(lblTitle);

JPanelTextArea.add(displayContent);

JPanelLblStatusBar.add(lblStatusBar);

}

//窗體布局

public void uiLayout(){

//==============總體布局================================

this.setLayout(new BorderLayout(10,10));//邊界布局

this.add(JPanelTextArea,BorderLayout.WEST);

this.add(JPanelContainer,BorderLayout.EAST);

this.add(JPanelTitle,BorderLayout.NORTH);

this.add(JPanelLblStatusBar,BorderLayout.SOUTH);

//===============右側布局================================

JPanelContainer.setLayout(new GridLayout(2,1));//網格布局

JPanelContainer.add(lblPreviewContent);

JPanelContainer.add(JPanelOperation);

//================右下布局===============================

JPanelOperation.setLayout(null);//無布局,絕對布局

JPanelOperation.add(btnLoader);

JPanelOperation.add(btnRemoval);

JPanelOperation.add(btnCancel);

JPanelOperation.add(btnHistory);

btnLoader.setBounds(260,30,120,30);

btnRemoval.setBounds(260,80,120,30);

btnCancel.setBounds(260,130,120,30);

btnHistory.setBounds(260,180,120,30);

}

//組件樣式

public void componentStyle(){

lblTitle.setFont(new java.awt.Font("",1,20));//設置lblTitle字體和大小

lblTitle.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));//設置lblTitle邊框,上左下右

lblPreviewContent.setIcon(new ImageIcon("D://DSC_0675.jpg"));

lblPreviewContent.setSize(10,10);

btnLoader.setPreferredSize(new Dimension(30,30));

btnLoader.setBorderPainted(false);

btnRemoval.setBorderPainted(false);

btnCancel.setBorderPainted(false);

btnHistory.setBorderPainted(false);

//lblStatusBar.setBorder(BorderFactory.createEmptyBorder(580, 560, 0, 0));//狀態欄個人信息向右對齊

}

}

-----------未完待續

package zuiquchong;

import java.io.File;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

/**

* @author 蘇寶伢 E-mail:by.su@qq.com

* @version 創建時間: 2017年4月10日 下午2:25:10

*/

public class FileOperation {

//String strFilePath;

//顯示目錄下所有文件夾和文件,待用遞歸完善

public List displayFile(String strFilePath){

File f = new File(strFilePath);

File[] fileList = f.listFiles();

List fileNameList = new ArrayList<>();

for(File file:fileList){

fileNameList.add(file.getAbsolutePath());

}

return fileNameList;

}

}

package zuiquchong;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import javax.swing.BorderFactory;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.SwingConstants;

import javax.swing.event.CaretEvent;

import javax.swing.event.CaretListener;

/**

* @author 蘇寶伢 E-mail:by.su@qq.com

* @version 創建時間: 2017年4月5日 下午12:47:32

*/

public class RemovalUI extends JFrame{

JPanel JPanelTitle,JPanelTextArea,JPanelLblPreview,JPanelOperation,JPanelContainer,JPanelLblStatusBar;

JButton btnLoader,btnRemoval,btnRecovery,btnHistory;

JTextArea displayContent;

JScrollPane scroll;

JLabel lblTitle,lblPreviewContent,lblStatusBar;

public RemovalUI(){

super("最去重文件管理器");

initialization();

}

public static void main(String[] args) {

new RemovalUI();

}

//初始化UI窗體

public void initialization(){

buildComponent();

addComponentToPanel();

componentStyle();

uiLayout();

this.setSize(800, 600);

this.setResizable(false); //不能改變大小

this.setVisible(true); //設置窗口可見

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//創建各組件對象、添加監聽對象、注冊監聽

public void buildComponent(){

JPanelTextArea = new JPanel();

JPanelTextArea = new JPanel();

JPanelContainer = new JPanel();

JPanelLblPreview = new JPanel();

JPanelOperation = new JPanel();

JPanelTitle = new JPanel();

JPanelLblStatusBar = new JPanel();

displayContent = new JTextArea(29,48);

scroll = new JScrollPane(displayContent);//添加滾動條

scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);//添加垂直方向滾動條

scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); //添加水平方向滾動條

lblTitle = new JLabel("最去重文件管理器",SwingConstants.CENTER);

lblPreviewContent = new JLabel();

btnLoader = new JButton("載入");

btnRemoval = new JButton("去重");

btnRecovery = new JButton("撤銷");

btnHistory = new JButton("歷史記錄");

lblStatusBar = new JLabel("by不最醉不龜歸 | e-mail:by.su@qq.com",SwingConstants.RIGHT);

//---創建監聽對象

ButtonListener uiEvent = new ButtonListener();

FocusEventListener focusEvent = new FocusEventListener();

MouseEventListener mouseEvent = new MouseEventListener();

//注冊監聽btnLoader

btnLoader.addActionListener(uiEvent);

//注冊監聽btnRemoval

btnRemoval.addActionListener(uiEvent);

//注冊監聽btnCancel

btnRecovery.addActionListener(uiEvent);

//注冊監聽btnHistory

btnHistory.addActionListener(uiEvent);

//注冊監聽

displayContent.addFocusListener(focusEvent);

displayContent.addMouseListener(mouseEvent);

}

//往容器中添加組件

public void addComponentToPanel(){

this.add(JPanelTitle);

this.add(JPanelContainer);

this.add(JPanelLblStatusBar);

JPanelTitle.add(lblTitle);

JPanelTextArea.add(scroll);

//JPanelTextArea.add(displayContent);

JPanelLblStatusBar.add(lblStatusBar);

}

//窗體布局

public void uiLayout(){

//==============總體布局================================

this.setLayout(new BorderLayout(10,10));//邊界布局

this.add(JPanelTextArea,BorderLayout.WEST);

this.add(JPanelContainer,BorderLayout.EAST);

this.add(JPanelTitle,BorderLayout.NORTH);

this.add(JPanelLblStatusBar,BorderLayout.SOUTH);

//===============右側布局================================

JPanelContainer.setLayout(new GridLayout(2,1));//網格布局

JPanelContainer.add(lblPreviewContent);

JPanelContainer.add(JPanelOperation);

//================右下布局===============================

JPanelOperation.setLayout(null);//無布局,絕對布局

JPanelOperation.add(btnLoader);

JPanelOperation.add(btnRemoval);

JPanelOperation.add(btnRecovery);

JPanelOperation.add(btnHistory);

btnLoader.setBounds(260,30,120,30);

btnRemoval.setBounds(260,80,120,30);

btnRecovery.setBounds(260,130,120,30);

btnHistory.setBounds(260,180,120,30);

}

//組件樣式

public void componentStyle(){

lblTitle.setFont(new java.awt.Font("",1,20));//設置lblTitle字體和大小

lblTitle.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));//設置lblTitle邊框,上左下右

lblPreviewContent.setIcon(new ImageIcon("D://bysu//個人知識拓展//機器學習//PB1636 王者歸來:OpenCV3使用Java開發手冊//PB1636//samples//DSC_0675.jpg"));

lblPreviewContent.setSize(10,10);

btnLoader.setPreferredSize(new Dimension(30,30));

btnLoader.setBorderPainted(false);

btnRemoval.setBorderPainted(false);

btnRecovery.setBorderPainted(false);

btnHistory.setBorderPainted(false);

//lblStatusBar.setBorder(BorderFactory.createEmptyBorder(580, 560, 0, 0));//狀態欄個人信息向右對齊

}

//Button按鈕的內部監聽類

class ButtonListener implements ActionListener{

String strPath = "D:\\Users\\EX-SUBAOYA001\\Documents";

@Override

public void actionPerformed(ActionEvent e){

Object source = e.getSource();

if(source == btnLoader){ //點擊載入

displayContent.setText("");

FileOperation f = new FileOperation();

List list = f.displayFile(strPath);

for(Object obj:list){

displayContent.append((String)obj);

displayContent.append("\r\n");

}

//打開一個文件對話框

JFileChooser fc = new JFileChooser();

fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );

int chooseValue = fc.showOpenDialog(null);

if(chooseValue==JFileChooser.APPROVE_OPTION){

String chooseFilePath = fc.getSelectedFile().getPath();

if(!chooseFilePath.equals(strPath)){

displayContent.setText("");

list = f.displayFile(chooseFilePath);

for(Object obj:list){

displayContent.append((String)obj);

displayContent.append("\r\n");

}

strPath = chooseFilePath;

}else{

System.out.println("選中的文件目錄與現在的一樣");

}

}else{

System.out.println("沒有選中文件夾");

}

}else if(source == btnRemoval){ //點擊去重

System.out.println("btnRemoval");

}else if(source == btnRecovery){ //點擊撤銷

System.out.println("btnCancel");

}else{ //顯示歷史記錄

System.out.println("btnHistory");

}

}

}

//FocusEvent焦點觸發

class FocusEventListener implements FocusListener{

@Override

public void focusGained(FocusEvent e) {

Object source = e.getSource();

if(source == displayContent){

if(displayContent.getText()!=""){

System.out.println("點擊文本編輯框" + displayContent.getRows());

}else{

System.out.println("文本框非空");

}

}

}

@Override

public void focusLost(FocusEvent e) {

}

}

//鼠標監聽類

class MouseEventListener implements MouseListener{

FileOperation f = new FileOperation();

int count =0;

@Override

public void mouseClicked(MouseEvent e) {

Object source = e.getSource();

if(source == displayContent){

System.out.println(getRowText(displayContent.getText()));

}

}

@Override

public void mousePressed(MouseEvent e) {

}

@Override

public void mouseReleased(MouseEvent e) {

}

@Override

public void mouseEntered(MouseEvent e) {

}

@Override

public void mouseExited(MouseEvent e) {

}

}

//JTextArea內容

FileOperation f = new FileOperation();

//顯示JTextArea控件中所在行的內容

public String getRowText(String text){

public int rows = 0;

displayContent.addCaretListener(new CaretListener() {

public void caretUpdate(CaretEvent e) {

try {

int offset = e.getDot() ; //獲得插入符的位置。

//getLineOfOffset(int offset) 將組件文本中的偏移量轉換為行號

int row = displayContent.getLineOfOffset(offset);

//getLineStartOffset(int line) 取得給定行起始處的偏移量。

//getLineEndOffset(int line) 取得給定行結尾處的偏移量。

int column = e.getDot() - displayContent.getLineStartOffset(row);

// 在狀態欄中顯示當前光標所在行號、所在列號

System.out.println("Line: " + (row + 1) + ", Column: " + (column+1));

row = displayContent.getLineStartOffset(row+1);

System.out.println(row +"fffff");

} catch (Exception ex) {

ex.printStackTrace();

}

}

});

String getText="";

String regex = "\n";

Pattern p =Pattern.compile(regex);

String[] r = p.split(text);

if(!((r[rows-1].trim()).equals(""))){

getText = r[rows-1];

}

return getText;

}

}

/*package zuiquchong;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.List;

import javax.swing.BorderFactory;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.SwingConstants;

*//**

* @author 蘇寶伢 E-mail:by.su@qq.com

* @version 創建時間: 2017年4月5日 下午12:47:32

*//*

public class RemovalUI extends JFrame{

JPanel JPanelTitle,JPanelTextArea,JPanelLblPreview,JPanelOperation,JPanelContainer,JPanelLblStatusBar;

JButton btnLoader,btnRemoval,btnCancel,btnHistory;

JTextArea displayContent;

JScrollPane scroll;

JLabel lblTitle,lblPreviewContent,lblStatusBar;

public RemovalUI(){

super("最去重文件管理器");

initialization();

}

public static void main(String[] args) {

new RemovalUI();

}

//初始化UI窗體

public void initialization(){

buildComponent();

addComponentToPanel();

componentStyle();

uiLayout();

this.setSize(800, 600);

this.setResizable(false); //不能改變大小

this.setVisible(true); //設置窗口可見

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//創建各組件對象、添加監聽對象、注冊監聽

public void buildComponent(){

JPanelTextArea = new JPanel();

JPanelTextArea = new JPanel();

JPanelContainer = new JPanel();

JPanelLblPreview = new JPanel();

JPanelOperation = new JPanel();

JPanelTitle = new JPanel();

JPanelLblStatusBar = new JPanel();

displayContent = new JTextArea(30,48);

scroll = new JScrollPane(displayContent);//添加滾動條

scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

lblTitle = new JLabel("最去重文件管理器",SwingConstants.CENTER);

lblPreviewContent = new JLabel();

btnLoader = new JButton("載入");

btnRemoval = new JButton("去重");

btnCancel = new JButton("撤銷");

btnHistory = new JButton("歷史記錄");

lblStatusBar = new JLabel("by不最醉不龜歸 | e-mail:by.su@qq.com",SwingConstants.RIGHT);

//---創建監聽對象

ButtonListener uiEvent = new ButtonListener();

//注冊監聽btnLoader

btnLoader.addActionListener(uiEvent);

//注冊監聽btnRemoval

btnRemoval.addActionListener(uiEvent);

//注冊監聽btnCancel

btnCancel.addActionListener(uiEvent);

//注冊監聽btnHistory

btnHistory.addActionListener(uiEvent);

}

//往容器中添加組件

public void addComponentToPanel(){

this.add(JPanelTitle);

this.add(JPanelContainer);

this.add(JPanelLblStatusBar);

JPanelTitle.add(lblTitle);

JPanelTextArea.add(displayContent);

JPanelLblStatusBar.add(lblStatusBar);

}

//窗體布局

public void uiLayout(){

//==============總體布局================================

this.setLayout(new BorderLayout(10,10));//邊界布局

this.add(JPanelTextArea,BorderLayout.WEST);

this.add(JPanelContainer,BorderLayout.EAST);

this.add(JPanelTitle,BorderLayout.NORTH);

this.add(JPanelLblStatusBar,BorderLayout.SOUTH);

//===============右側布局================================

JPanelContainer.setLayout(new GridLayout(2,1));//網格布局

JPanelContainer.add(lblPreviewContent);

JPanelContainer.add(JPanelOperation);

//================右下布局===============================

JPanelOperation.setLayout(null);//無布局,絕對布局

JPanelOperation.add(btnLoader);

JPanelOperation.add(btnRemoval);

JPanelOperation.add(btnCancel);

JPanelOperation.add(btnHistory);

btnLoader.setBounds(260,30,120,30);

btnRemoval.setBounds(260,80,120,30);

btnCancel.setBounds(260,130,120,30);

btnHistory.setBounds(260,180,120,30);

}

//組件樣式

public void componentStyle(){

lblTitle.setFont(new java.awt.Font("",1,20));//設置lblTitle字體和大小

lblTitle.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));//設置lblTitle邊框,上左下右

lblPreviewContent.setIcon(new ImageIcon("D://bysu//個人知識拓展//機器學習//PB1636 王者歸來:OpenCV3使用Java開發手冊//PB1636//samples//DSC_0675.jpg"));

lblPreviewContent.setSize(10,10);

btnLoader.setPreferredSize(new Dimension(30,30));

btnLoader.setBorderPainted(false);

btnRemoval.setBorderPainted(false);

btnCancel.setBorderPainted(false);

btnHistory.setBorderPainted(false);

//lblStatusBar.setBorder(BorderFactory.createEmptyBorder(580, 560, 0, 0));//狀態欄個人信息向右對齊

}

//內部監聽類

class ButtonListener implements ActionListener{

@Override

public void actionPerformed(ActionEvent e){

Object source = e.getSource();

if(source == btnLoader){

displayContent.setText("");

String strPath = "D:/Users/EX-SUBAOYA001/Documents";

FileOperation f = new FileOperation();

List list = f.displayFile(strPath);

for(Object obj:list){

displayContent.append((String)obj);

displayContent.append("\r\n");

}

//打開一個文件對話框

JFileChooser fc = new JFileChooser();

fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );

fc.showOpenDialog(null);

String chooseFilePath = fc.getSelectedFile().getPath();

if(chooseFilePath!=strPath){

displayContent.setText("");

list = f.displayFile(chooseFilePath);

for(Object obj:list){

displayContent.append((String)obj);

displayContent.append("\r\n");

}

}else{

}

}else if(source == btnRemoval){

System.out.println("btnRemoval");

}else if(source == btnCancel){

System.out.println("btnCancel");

}else{

System.out.println("btnHistory");

}

}

}

}*/

public String getRowText(String text){

int rows = 0;

class MyCaretListener implements CaretListener{

int tempResult = 0;

@Override

public void caretUpdate(CaretEvent e) {

try {

int offset = e.getDot() ; //獲得插入符的位置。

//getLineOfOffset(int offset) 將組件文本中的偏移量轉換為行號

int row = displayContent.getLineOfOffset(offset);

//getLineStartOffset(int line) 取得給定行起始處的偏移量。

//getLineEndOffset(int line) 取得給定行結尾處的偏移量。

int column = e.getDot() - displayContent.getLineStartOffset(row);

// 在狀態欄中顯示當前光標所在行號、所在列號

System.out.println("Line: " + (row + 1) + ", Column: " + (column+1));

tempResult = displayContent.getLineStartOffset(row+1);

System.out.println(row +"fffff");

} catch (Exception ex) {

ex.printStackTrace();

}

}

public int getResult(){//為了從內部類中取出結果

return tempResult;

}

}

MyCaretListener mycaretListener = new MyCaretListener();

displayContent.addCaretListener(mycaretListener);

rows = mycaretListener.getResult();

String getText="";

String regex = "\n";

Pattern p =Pattern.compile(regex);

String[] r = p.split(text);

if(!((r[rows-1].trim()).equals(""))){

getText = r[rows-1];

}

return getText;

}

總結

以上是生活随笔為你收集整理的python桌面开发吐血_想用java写个桌面小demo,就布局都差点写吐血了,学艺不精...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 深夜福利视频导航 | 亚洲激情网站 | 国产免费黄色小视频 | 国产精品一页 | 殴美一级黄色片 | 国产精品成人免费精品自在线观看 | 青青草原一区二区 | 亚洲a免费 | japanese av在线| 欧美日韩精品一区二区三区视频播放 | 亚洲色诱 | 人人妻人人澡人人爽人人dvd | 制服.丝袜.亚洲.另类.中文 | 日韩欧美中文在线观看 | 国产成人无码a区在线观看视频 | 欧美一区二区在线免费观看 | 强行挺进白丝老师里呻吟 | 人人爽人人草 | 波多野吉衣在线观看视频 | 国产91精品久久久久久久网曝门 | 91精品美女 | 一级α片免费看刺激高潮视频 | 精品国产丝袜一区二区三区乱码 | 超碰人人人人人人 | 亚洲一卡一卡 | 亚洲综合婷婷久久 | 夜色成人网 | 欧美日韩激情视频在线观看 | 中文字幕激情小说 | 男女黄色录像 | 欧美少妇bbw | 啪啪综合网 | 九九热这里都是精品 | 伊人中文字幕在线观看 | 热热热色| 九色福利视频 | 九九三级 | 青青草在线免费观看 | 91av视频播放 | 免费在线观看黄色av | 亚洲人成免费电影 | 97人妻一区二区精品免费视频 | 久久久久久久香蕉 | 一本大道av伊人久久综合 | 在线不卡av电影 | 亚洲老老头同性老头交j | 开心激情av | 性感少妇av| 亚洲精品视频一二三区 | 六月丁香婷婷综合 | jizz在线看 | 日韩网站在线 | 17草在线| 欧美综合在线一区 | 日韩免费二区 | а√中文在线资源库 | aaa毛片视频 | 秋霞影院一区二区 | 欧美自拍偷拍 | 丰满少妇一级 | 俺也去在线视频 | 亚洲www啪成人一区二区麻豆 | 日av在线播放 | 久久逼逼| 久久91av | 国产88av | 亚洲成人福利 | 国产一区二区三区四 | 无码gogo大胆啪啪艺术 | 91精品国产一区二区无码 | 国产乱色 | 欧美四区| 亚洲九九精品 | porn亚洲 | 97se亚洲综合 | 91春色 | 亚洲区中文字幕 | 老牛影视av一区二区在线观看 | 欧美成欧美va | 国产精品扒开腿做爽爽爽视频 | 成人涩涩网 | 中文字幕无产乱码 | 国产精品毛片 | 欧美日韩一区三区 | 婷婷色六月 | 国产精品成人一区二区三区 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 精品爆乳一区二区三区无码av | 天天爱天天干天天操 | 精品人妻少妇AV无码专区 | 婷婷色中文网 | 婷婷四房综合激情五月 | 国产激情啪啪 | 亚洲天天综合网 | 又白又嫩毛又多15p 超碰在线一区 | 日韩字幕在线观看 | 欧美一区二区视频在线 | 日本啪啪片 | 黄色亚洲精品 |