java計算窗口程序代碼 java計算器程序代碼

急求!!!如何用java程序代碼實現計算器界面

package?jisuanqi_new;

創新互聯建站主營隆回網站建設的網絡公司,主營網站建設方案,手機APP定制開發,隆回h5微信小程序定制開發搭建,隆回網站營銷推廣歡迎隆回等地區企業咨詢

import?java.awt.*;

import?java.awt.event.*;

public?class?JiSuanQi_new?implements?ActionListener

{

Panel?p1;//聲明面板p1

TextField?t1;//聲明文本行t1

String[]?label?=?{"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};//聲明標簽數組label1存放按鈕上的標簽

Button[]?b;//聲明按鈕數組存放16個按鈕

private?int?i;//聲明i以備后用

private?String?op1?=?"0";//運算數備用

private?String?operator?=?"+";//運算符備用

private?boolean?append?=?false;//備用

public?JiSuanQi_new()//構造方法

{

t1=new?TextField();//初始化文本行t1

b?=?new?Button[label.length];//初始化按鈕數組b

p1=new?Panel();//初始化面板p1

p1.setLayout(new?GridLayout(4,4,4,4));//使面板選擇網格布局管理器以備儲存16個按鈕(4行4列)

for(int?i=0;ib.length;i++)//利用for循環把標簽放在按鈕上,使每個按鈕添加事件監聽器,在面板p1上添加上16個按鈕

{

b[i]?=?new?Button(label[i]);//把標簽依次放在16個按鈕上

b[i].addActionListener(this);//使每個按鈕添加動作事件監聽器

p1.add(b[i]);?//分別將按鈕添加到面板p1上

}

Frame?f=new?Frame("計算器1.0");//初始化窗口f,起名字計算器1.0

f.setLayout(new?BorderLayout());//為窗口選擇邊界布局管理器

f.add(BorderLayout.NORTH,t1);//把文本行他添加到窗口的北部

f.add(BorderLayout.CENTER,p1);//把面吧p1添加到窗口的中間

f.addWindowListener(new?WindowAdapter(){//給窗口f添加窗口事件監聽器

public?void?windowClosing(WindowEvent?eve){//運行窗口關閉方法

System.exit(0);//退出程序

}

});

f.setSize(250,?250);//設置窗口大小

f.setLocation(200,200);

f.setVisible(true);//顯示窗口

}

public?static?void?main(String?args[])

{

new?JiSuanQi_new();?//調用構造方法

}

public?void?actionPerformed(ActionEvent?ae)

{//按鈕被操作發生

String?comm?=?ae.getActionCommand();//返回與此動作相關的命令字符串,即:使用者第一次點擊的按鈕是什么。

if("0123456789".indexOf(comm)!=-1)//如果相關命令字符串為0~9之間的數字則執行

{

if(append){

String?temp?=?t1.getText();//新數字

t1.setText(temp+comm);

}else{?????????????????????????//因為此時append為false執行這個

t1.setText(comm);?//將文本行t1設置為相關命令字符串(你按中的按鈕代碼)

append?=??true;//此時append=true若繼續按按鈕若繼續按數字的話1.第一次的按話不會改變2.非第一次按得話會覆蓋之前按得數字(即缺點:只能進行單個數字的計算)

}

}

else?if(("+-*/".indexOf(comm)!=-1))//如果相關命令字符串為+-*/之間的數字則執行

{

//保存

//t1.setText(comm);

op1?=?t1.getText();//把第一個數賦值給op1

operator?=?comm;//把命令字符串賦值給operator

append?=?false;//此時append為false即若繼續按按鈕若按數字的話將重復上面的動作,按符號的話將覆蓋之前的符號

}

else?if("=".equals(comm))//如果按的是=號,則按條件進行下面的運算

{

String?op2?=?t1.getText();//op2第二個數

double?d1?=?Double.parseDouble(op1);

double?d2?=?Double.parseDouble(op2);

if(operator.equals("+")){

d1?=?d1?+?d2?;

}else?if(operator.equals("-")){

d1?=?d1?-?d2;

}else?if(operator.equals("*")){

d1?=?d1?*?d2;

}else?{

d1?=?d1?/?d2;

}

t1.setText(d1+"");//顯示計算結果

append?=?false;

}

else?if(".".equals(comm))//若是.號繼續按

{

String?temp?=?t1.getText();

if(temp.indexOf(".")==-1){

t1.setText(temp+".");

append?=?true;

}

}

}

}

怎樣用Java編寫一個整型計算器窗口并實現他的功能

給你個現成的,直接編譯運行,請采納

import?java.awt.BorderLayout;

import?java.awt.Color;

import?java.awt.GridLayout;

import?java.awt.event.ActionEvent;

import?java.awt.event.ActionListener;

import?javax.swing.JButton;

import?javax.swing.JFrame;

import?javax.swing.JPanel;

import?javax.swing.JTextField;

/**

*?一個計算器,與Windows附件自帶計算器的標準版功能、界面相仿。?但還不支持鍵盤操作。

*/

public?class?JCalculator?extends?JFrame?implements?ActionListener?{

/**?計算器上的鍵的顯示名字?*/

private?final?String[]?KEYS?=?{?"7",?"8",?"9",?"/",?"sqrt",?"4",?"5",?"6",

"*",?"%",?"1",?"2",?"3",?"-",?"1/x",?"0",?"+/-",?".",?"+",?"="?};

/**?計算器上的功能鍵的顯示名字?*/

private?final?String[]?COMMAND?=?{?"Backspace",?"CE",?"C"?};

/**?計算器左邊的M的顯示名字?*/

private?final?String[]?M?=?{?"?",?"MC",?"MR",?"MS",?"M+"?};

/**?計算器上鍵的按鈕?*/

private?JButton?keys[]?=?new?JButton[KEYS.length];

/**?計算器上的功能鍵的按鈕?*/

private?JButton?commands[]?=?new?JButton[COMMAND.length];

/**?計算器左邊的M的按鈕?*/

private?JButton?m[]?=?new?JButton[M.length];

/**?計算結果文本框?*/

private?JTextField?resultText?=?new?JTextField("0");

//?標志用戶按的是否是整個表達式的第一個數字,或者是運算符后的第一個數字

private?boolean?firstDigit?=?true;

//?計算的中間結果。

private?double?resultNum?=?0.0;

//?當前運算的運算符

private?String?operator?=?"=";

//?操作是否合法

private?boolean?operateValidFlag?=?true;

/**

?*?構造函數

?*/

public?JCalculator()?{

super();

//?初始化計算器

init();

//?設置計算器的背景顏色

this.setBackground(Color.LIGHT_GRAY);

this.setTitle("計算器");

//?在屏幕(500,?300)坐標處顯示計算器

this.setLocation(500,?300);

//?不許修改計算器的大小

this.setResizable(false);

//?使計算器中各組件大小合適

this.pack();

}

/**

?*?初始化計算器

?*/

private?void?init()?{

//?文本框中的內容采用右對齊方式

resultText.setHorizontalAlignment(JTextField.RIGHT);

//?不允許修改結果文本框

resultText.setEditable(false);

//?設置文本框背景顏色為白色

resultText.setBackground(Color.white);

//?初始化計算器上鍵的按鈕,將鍵放在一個畫板內

JPanel?calckeysPanel?=?new?JPanel();

//?用網格布局器,4行,5列的網格,網格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

calckeysPanel.setLayout(new?GridLayout(4,?5,?3,?3));

for?(int?i?=?0;?i??KEYS.length;?i++)?{

keys[i]?=?new?JButton(KEYS[i]);

calckeysPanel.add(keys[i]);

keys[i].setForeground(Color.blue);

}

//?運算符鍵用紅色標示,其他鍵用藍色表示

keys[3].setForeground(Color.red);

keys[8].setForeground(Color.red);

keys[13].setForeground(Color.red);

keys[18].setForeground(Color.red);

keys[19].setForeground(Color.red);

//?初始化功能鍵,都用紅色標示。將功能鍵放在一個畫板內

JPanel?commandsPanel?=?new?JPanel();

//?用網格布局器,1行,3列的網格,網格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

commandsPanel.setLayout(new?GridLayout(1,?3,?3,?3));

for?(int?i?=?0;?i??COMMAND.length;?i++)?{

commands[i]?=?new?JButton(COMMAND[i]);

commandsPanel.add(commands[i]);

commands[i].setForeground(Color.red);

}

//?初始化M鍵,用紅色標示,將M鍵放在一個畫板內

JPanel?calmsPanel?=?new?JPanel();

//?用網格布局管理器,5行,1列的網格,網格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

calmsPanel.setLayout(new?GridLayout(5,?1,?3,?3));

for?(int?i?=?0;?i??M.length;?i++)?{

m[i]?=?new?JButton(M[i]);

calmsPanel.add(m[i]);

m[i].setForeground(Color.red);

}

//?下面進行計算器的整體布局,將calckeys和command畫板放在計算器的中部,

//?將文本框放在北部,將calms畫板放在計算器的西部。

//?新建一個大的畫板,將上面建立的command和calckeys畫板放在該畫板內

JPanel?panel1?=?new?JPanel();

//?畫板采用邊界布局管理器,畫板里組件之間的水平和垂直方向上間隔都為3象素

panel1.setLayout(new?BorderLayout(3,?3));

panel1.add("North",?commandsPanel);

panel1.add("West",?calckeysPanel);

//?建立一個畫板放文本框

JPanel?top?=?new?JPanel();

top.setLayout(new?BorderLayout());

top.add("Center",?resultText);

//?整體布局

getContentPane().setLayout(new?BorderLayout(3,?5));

getContentPane().add("North",?top);

getContentPane().add("Center",?panel1);

getContentPane().add("West",?calmsPanel);

//?為各按鈕添加事件偵聽器

//?都使用同一個事件偵聽器,即本對象。本類的聲明中有implements?ActionListener

for?(int?i?=?0;?i??KEYS.length;?i++)?{

keys[i].addActionListener(this);

}

for?(int?i?=?0;?i??COMMAND.length;?i++)?{

commands[i].addActionListener(this);

}

for?(int?i?=?0;?i??M.length;?i++)?{

m[i].addActionListener(this);

}

}

/**

?*?處理事件

?*/

public?void?actionPerformed(ActionEvent?e)?{

//?獲取事件源的標簽

String?label?=?e.getActionCommand();

if?(label.equals(COMMAND[0]))?{

//?用戶按了"Backspace"鍵

handleBackspace();

}?else?if?(label.equals(COMMAND[1]))?{

//?用戶按了"CE"鍵

resultText.setText("0");

}?else?if?(label.equals(COMMAND[2]))?{

//?用戶按了"C"鍵

handleC();

}?else?if?("0123456789.".indexOf(label)?=?0)?{

//?用戶按了數字鍵或者小數點鍵

handleNumber(label);

//?handlezero(zero);

}?else?{

//?用戶按了運算符鍵

handleOperator(label);

}

}

/**

?*?處理Backspace鍵被按下的事件

?*/

private?void?handleBackspace()?{

String?text?=?resultText.getText();

int?i?=?text.length();

if?(i??0)?{

//?退格,將文本最后一個字符去掉

text?=?text.substring(0,?i?-?1);

if?(text.length()?==?0)?{

//?如果文本沒有了內容,則初始化計算器的各種值

resultText.setText("0");

firstDigit?=?true;

operator?=?"=";

}?else?{

//?顯示新的文本

resultText.setText(text);

}

}

}

/**

?*?處理數字鍵被按下的事件

?*?

?*?@param?key

?*/

private?void?handleNumber(String?key)?{

if?(firstDigit)?{

//?輸入的第一個數字

resultText.setText(key);

}?else?if?((key.equals("."))??(resultText.getText().indexOf(".")??0))?{

//?輸入的是小數點,并且之前沒有小數點,則將小數點附在結果文本框的后面

resultText.setText(resultText.getText()?+?".");

}?else?if?(!key.equals("."))?{

//?如果輸入的不是小數點,則將數字附在結果文本框的后面

resultText.setText(resultText.getText()?+?key);

}

//?以后輸入的肯定不是第一個數字了

firstDigit?=?false;

}

/**

?*?處理C鍵被按下的事件

?*/

private?void?handleC()?{

//?初始化計算器的各種值

resultText.setText("0");

firstDigit?=?true;

operator?=?"=";

}

/**

?*?處理運算符鍵被按下的事件

?*?

?*?@param?key

?*/

private?void?handleOperator(String?key)?{

if?(operator.equals("/"))?{

//?除法運算

//?如果當前結果文本框中的值等于0

if?(getNumberFromText()?==?0.0)?{

//?操作不合法

operateValidFlag?=?false;

resultText.setText("除數不能為零");

}?else?{

resultNum?/=?getNumberFromText();

}

}?else?if?(operator.equals("1/x"))?{

//?倒數運算

if?(resultNum?==?0.0)?{

//?操作不合法

operateValidFlag?=?false;

resultText.setText("零沒有倒數");

}?else?{

resultNum?=?1?/?resultNum;

}

}?else?if?(operator.equals("+"))?{

//?加法運算

resultNum?+=?getNumberFromText();

}?else?if?(operator.equals("-"))?{

//?減法運算

resultNum?-=?getNumberFromText();

}?else?if?(operator.equals("*"))?{

//?乘法運算

resultNum?*=?getNumberFromText();

}?else?if?(operator.equals("sqrt"))?{

//?平方根運算

resultNum?=?Math.sqrt(resultNum);

}?else?if?(operator.equals("%"))?{

//?百分號運算,除以100

resultNum?=?resultNum?/?100;

}?else?if?(operator.equals("+/-"))?{

//?正數負數運算

resultNum?=?resultNum?*?(-1);

}?else?if?(operator.equals("="))?{

//?賦值運算

resultNum?=?getNumberFromText();

}

if?(operateValidFlag)?{

//?雙精度浮點數的運算

long?t1;

double?t2;

t1?=?(long)?resultNum;

t2?=?resultNum?-?t1;

if?(t2?==?0)?{

resultText.setText(String.valueOf(t1));

}?else?{

resultText.setText(String.valueOf(resultNum));

}

}

//?運算符等于用戶按的按鈕

operator?=?key;

firstDigit?=?true;

operateValidFlag?=?true;

}

/**

?*?從結果文本框中獲取數字

?*?

?*?@return

?*/

private?double?getNumberFromText()?{

double?result?=?0;

try?{

result?=?Double.valueOf(resultText.getText()).doubleValue();

}?catch?(NumberFormatException?e)?{

}

return?result;

}

public?static?void?main(String?args[])?{

JCalculator?JCalculator1?=?new?JCalculator();

JCalculator1.setVisible(true);

JCalculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

怎么用JAVA編寫一個計算器窗口,并實現他的功能,求給出代碼,對的話一定高分回報,謝謝了。。。

JAVA 計算器程序

Cadev.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.LinkedList;

import java.text.NumberFormat;

import javax.swing.border.*;

public class Cadev extends JFrame implements ActionListener

{

Nbtn nbtn[];

Obtn obtn[];

Button dotbtn,PlusOrMinusbtn,Backspacebtn,

recbtn,equbtn,clbtn;

JPanel panel;

JTextField resultShow;

String Oper[]={"+","-","*","/"};

LinkedList link;

boolean sfcequ=false;

public Cadev()

{

super("計算器");

link=new LinkedList();

nbtn=new Nbtn[10];

for(int i=0;i=9;i++)

{

nbtn[i]=new Nbtn(i);

nbtn[i].addActionListener(this);

}

obtn=new Obtn[4];

for(int i=0;i4;i++)

{

obtn[i]=new Obtn(Oper[i]);

obtn[i].addActionListener(this);

}

dotbtn=new Button(".");

PlusOrMinusbtn=new Button("+/-");

equbtn=new Button("=");

recbtn=new Button("1/x");

Backspacebtn=new Button("退格");

clbtn=new Button("C");

recbtn.setForeground(Color.blue);

dotbtn.setForeground(Color.blue);

PlusOrMinusbtn.setForeground(Color.blue);

equbtn.setForeground(Color.red);

Backspacebtn.setForeground(Color.red);

clbtn.setForeground(Color.red);

dotbtn.addActionListener(this);

PlusOrMinusbtn.addActionListener(this);

equbtn.addActionListener(this);

recbtn.addActionListener(this);

Backspacebtn.addActionListener(this);

clbtn.addActionListener(this);

resultShow=new JTextField(10);

resultShow.setHorizontalAlignment(JTextField.RIGHT);

resultShow.setFont(new Font("TimesRoman",Font.PLAIN,14));

resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));

resultShow.setBackground(Color.white);

resultShow.setEditable(false);

panel=new JPanel();

panel.setLayout(new GridLayout(4,5));

panel.add(nbtn[1]);

panel.add(nbtn[2]);

panel.add(nbtn[3]);

panel.add(obtn[0]);

panel.add(clbtn);

panel.add(nbtn[4]);

panel.add(nbtn[5]);

panel.add(nbtn[6]);

panel.add(obtn[1]);

panel.add(Backspacebtn);

panel.add(nbtn[7]);

panel.add(nbtn[8]);

panel.add(nbtn[9]);

panel.add(obtn[2]);

panel.add(recbtn);

panel.add(nbtn[0]);

panel.add(PlusOrMinusbtn);

panel.add(dotbtn);

panel.add(obtn[3]);

panel.add(equbtn);

add(panel,BorderLayout.CENTER);

add(resultShow,BorderLayout.NORTH);

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

setVisible(true);

setBounds(100,50,240,180);

setResizable(false);

validate();

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource() instanceof Nbtn)

{

Nbtn b=(Nbtn)e.getSource();

if(link.size()==0)

{

int num=b.getNum();

link.add(""+num);

resultShow.setText(""+num);

sfcequ=false;

}

else if(link.size()==1sfcequ==false)

{

int num=b.getNum();

String Number=(String)link.getFirst();

String s=Number.concat(""+num);

link.set(0,s);

resultShow.setText(s);

}

else if(link.size()==1sfcequ==true)

{

int num=b.getNum();

link.removeFirst();

link.add(""+num);

sfcequ=false;

resultShow.setText(""+num);

}

else if(link.size()==2)

{

int num=b.getNum();

link.add(""+num);

resultShow.setText(""+num);

}

else if(link.size()==3)

{

int num=b.getNum();

String Number=(String)link.getLast();

String s=Number.concat(""+num);

link.set(2,s);

resultShow.setText(s);

}

}

else if(e.getSource() instanceof Obtn)

{

Obtn b=(Obtn)e.getSource();

if(link.size()==1)

{

String sign=b.getOper();

link.add(sign);

}

else if(link.size()==2)

{

String sign=b.getOper();

link.set(1,sign);

}

else if(link.size()==3)

{

String sign=b.getOper();

String num1=(String)link.getFirst();

String num2=(String)link.getLast();

String Oper=(String)link.get(1);

try

{

double n1=Double.parseDouble(num1);

double n2=Double.parseDouble(num2);

double n=0;

if(Oper.equals("+"))

{

n=n1+n2;

}

else if(Oper.equals("-"))

{

n=n1-n2;

}

else if(Oper.equals("*"))

{

n=n1*n2;

}

else if(Oper.equals("/"))

{

n=n1/n2;

}

link.clear();

link.add(""+n);

link.add(sign);

resultShow.setText(""+n);

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==equbtn)

{

sfcequ=true;

if(link.size()==1||link.size()==2)

{

String num=(String)link.getFirst();

resultShow.setText(""+num);

}

else if(link.size()==3)

{

String num1=(String)link.getFirst();

String num2=(String)link.getLast();

String sign=(String)link.get(1);

try

{

double n1=Double.parseDouble(num1);

double n2=Double.parseDouble(num2);

double n=0;

if(sign.equals("+"))

{

n=n1+n2;

}

else if(sign.equals("-"))

{

n=n1-n2;

}

else if(sign.equals("*"))

{

n=n1*n2;

}

else if(sign.equals("/"))

{

n=n1/n2;

}

resultShow.setText(""+n);

link.set(0,""+n);

link.removeLast();

link.removeLast();

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==dotbtn)

{

if(link.size()==0)

{

sfcequ=false;

}

else if(link.size()==1)

{

String dot=dotbtn.getLabel();

String num=(String)link.getFirst();

String s=null;

if(num.indexOf(dot)==-1)

{

s=num.concat(dot);

link.set(0,s);

}

else

{

s=num;

}

link.set(0,s);

resultShow.setText(s);

}

else if(link.size()==3)

{

String dot=dotbtn.getLabel();

String num=(String)link.getLast();

String s=null;

if(num.indexOf(dot)==-1)

{

s=num.concat(dot);

link.set(2,s);

}

else

{

s=num;

}

resultShow.setText(s);

}

}

else if(e.getSource()==Backspacebtn)

{

if(link.size()==1)

{

String num=(String)link.getFirst();

if(num.length()=1)

{

num=num.substring(0,num.length()-1);

link.set(0,num);

resultShow.setText(num);

}

else

{

link.removeLast();

resultShow.setText("0");

}

}

else if(link.size()==3)

{

String num=(String)link.getLast();

if(num.length()=1)

{

num=num.substring(0,num.length()-1);

link.set(0,num);

resultShow.setText(num);

}

else

{

link.removeLast();

resultShow.setText("0");

}

}

}

else if(e.getSource()==PlusOrMinusbtn)

{

if(link.size()==1)

{

String num1=(String)link.getFirst();

try

{

double d=Double.parseDouble(num1);

d=-1*d;

String str=String.valueOf(d);

link.set(0,str);

resultShow.setText(str);

}

catch(Exception ee)

{

}

}

else if(link.size()==3)

{

String num2=(String)link.getLast();

try

{

double d=Double.parseDouble(num2);

d=-1*d;

String str=String.valueOf(d);

link.set(2,str);

resultShow.setText(str);

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==recbtn)

{

if(link.size()==1||link.size()==2)

{

String num1=(String)link.getFirst();

try

{

double d=Double.parseDouble(num1);

d=1.0/d;

String str=String.valueOf(d);

link.set(0,str);

resultShow.setText(str);

}

catch(Exception ee)

{

}

}

else if(link.size()==3)

{

String num2=(String)link.getLast();

try

{

double d=Double.parseDouble(num2);

d=1.0/d;

String str=String.valueOf(d);

link.set(0,str);

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==clbtn)

{

sfcequ=false;

resultShow.setText("0");

link.clear();

}

}

public static void main(String agrs[])

{

new Cadev();

}

}

Nbtn.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Nbtn extends Button

{

int Num;

public Nbtn(int n)

{

super(""+n);

Num=n;

setForeground(Color.blue);

}

public int getNum()

{

return Num;

}

}

Obtn.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Obtn extends Button

{

String Oper;

public Obtn(String s)

{

super(s);

Oper=s;

setForeground(Color.red);

}

public String getOper()

{

return Oper;

}

}

網站欄目:java計算窗口程序代碼 java計算器程序代碼
本文路徑:http://m.kartarina.com/article20/hjihco.html

成都網站建設公司_創新互聯,為您提供標簽優化外貿網站建設網站維護品牌網站建設定制開發自適應網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設
主站蜘蛛池模板: 无码精品久久久天天影视| 本道天堂成在人线av无码免费| 亚洲av永久无码精品天堂久久| 亚洲av永久中文无码精品| 中文无码成人免费视频在线观看| 亚洲日韩乱码中文无码蜜桃| 亚洲精品无码成人片久久不卡| 狠狠精品久久久无码中文字幕| 亚洲日韩精品一区二区三区无码 | 日韩加勒比一本无码精品| 亚洲国产精品无码专区影院 | 亚洲AV无码成H人在线观看| 亚洲中文字幕无码mv| 亚洲男人在线无码视频| 亚洲AV综合永久无码精品天堂| 亚洲AV无码乱码在线观看性色扶| 免费无码VA一区二区三区| 久久久久亚洲AV无码观看| 在线精品自拍无码| 免费看无码特级毛片| 亚洲熟妇无码一区二区三区导航 | 18禁网站免费无遮挡无码中文| 无码精品久久久久久人妻中字 | 亚洲熟妇无码另类久久久| 日韩精品无码成人专区| 无码少妇丰满熟妇一区二区| 蜜桃臀无码内射一区二区三区| 国产午夜无码精品免费看动漫| 日韩av片无码一区二区三区不卡 | 久久精品中文字幕无码绿巨人| 久99久无码精品视频免费播放| 日韩精品成人无码专区免费| 妖精色AV无码国产在线看| 亚洲av成人中文无码专区| 最新亚洲春色Av无码专区| 久久无码国产专区精品| 99精品一区二区三区无码吞精| 手机永久无码国产AV毛片| 少妇无码一区二区二三区| 久久亚洲精品无码VA大香大香| 久久久无码精品亚洲日韩按摩|