亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calculator.java

?? 利用java實現的加減乘除的計算器
?? JAVA
字號:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.LinkedList;
import java.text.NumberFormat;
public class Calculator extends Frame implements ActionListener
{
	NumberButton numberButton[];
	OperationButton operationButton[];
	Button dian,zhengfu,tuige,daoshu,dengyu,qingling;
	Panel panel;
	JTextField resultShow;
	String yunsuan[]={"+","-","*","/"};
	LinkedList lianbiao;
	boolean flag=false;
	public Calculator()
	{
		super("金芳計數器");
		lianbiao=new LinkedList();
		numberButton=new NumberButton[10];
		for(int i=0;i<=9;i++)
		{
			numberButton[i]=new NumberButton(i);
			numberButton[i].addActionListener(this);
		}
		operationButton=new OperationButton[4];
		//將yunsuan[i]中的+、-、*、/賦予operationButton數組
		for(int i=0;i<=3;i++)
		{
			operationButton[i]=new OperationButton(yunsuan[i]);
			operationButton[i].addActionListener(this);
		}
		dian=new Button(".");
		zhengfu=new Button("+/-");
		dengyu=new Button("=");
		daoshu=new Button("1/x");
		tuige=new Button("退格");
		qingling=new Button("C");
		//前景色
		qingling.setForeground(Color.red);
		tuige.setForeground(Color.red);
		dengyu.setForeground(Color.red);
		daoshu.setForeground(Color.blue);
		zhengfu.setForeground(Color.blue);
		dian.setForeground(Color.blue);
		//添加事件
        tuige.addActionListener(this);
        qingling.addActionListener(this);
		dengyu.addActionListener(this);
		dian.addActionListener(this);
		zhengfu.addActionListener(this);
		daoshu.addActionListener(this);
		//顯示結果文本框的設計
		resultShow=new JTextField(10);
		resultShow.setHorizontalAlignment(JTextField.RIGHT);
		resultShow.setForeground(Color.blue);
		resultShow.setFont(new Font("TimesRoman",Font.PLAIN,14));
		resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
		resultShow.setBackground(Color.white);
		resultShow.setEditable(false);
		panel=new Panel();
		panel.setLayout(new GridLayout(4,5));
		//第一行顯示的按鈕
		panel.add(numberButton[1]);
		panel.add(numberButton[2]);
		panel.add(numberButton[3]);
		panel.add(operationButton[0]);
		panel.add(qingling);
		//第二行顯示的按鈕
		panel.add(numberButton[4]);
		panel.add(numberButton[5]);
		panel.add(numberButton[6]);
		panel.add(operationButton[1]);
		panel.add(tuige);
		//第三行顯示的按鈕
		panel.add(numberButton[7]);
		panel.add(numberButton[8]);
		panel.add(numberButton[9]);
		panel.add(operationButton[2]);
		panel.add(daoshu);
		//第四行顯示的按鈕
		panel.add(numberButton[0]);
		panel.add(zhengfu);
		panel.add(dian);
		panel.add(operationButton[3]);
		panel.add(dengyu);
		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 NumberButton)//如果鼠標單擊數字按鈕
		  {
			  NumberButton btn=(NumberButton)e.getSource();
			  if(lianbiao.size()==0)//如果鏈表中沒有節點
			  {
				  int number=btn.getNumber();//從NumberButton方法中獲取按鈕上的字
				  lianbiao.add(""+number);
				  resultShow.setText(""+number);
				  flag=false;//等號沒有被按下
			   }
			  else if(lianbiao.size()==1&&flag==false)
			   {
                  int number=btn.getNumber();
				  String num=(String)lianbiao.getFirst();
				  String s=num.concat(""+number);//將兩個數字首位相接
				  lianbiao.set(0,s);
				  resultShow.setText(s);
			   }
			  else if(lianbiao.size()==1&&flag==true)
			  {
				  int number=btn.getNumber();
				  lianbiao.removeFirst();
				  lianbiao.add(""+number);//將數據添加到鏈表
				  flag=false;
				  resultShow.setText(""+number);
			  }
			  else if(lianbiao.size()==2)//鏈表中已經有兩個接點
			  {
				  int number=btn.getNumber();//獲取按鈕上的數字
				  lianbiao.add(""+number);//鏈表中添加第三個接點,第二個是符號
				  resultShow.setText(""+number);
			  }
			  else if(lianbiao.size()==3)//鏈表中已經有三個接點
			  {
				  int number=btn.getNumber();
				  String num=(String)lianbiao.getLast();
				  String s=num.concat(""+number);//與第三個接點的數字首尾相連
				  lianbiao.set(2,s);
				  resultShow.setText(s);
			  }
		  }
		else if(e.getSource() instanceof OperationButton)//如果單擊運算符號按鈕
		{
			OperationButton b=(OperationButton)e.getSource();
			if(lianbiao.size()==1)
			{
				String fuhao=b.getOperator();
				lianbiao.add(fuhao);//鏈表添加第二個接點:運算符號
			}
			else if(lianbiao.size()==2)
			{
				String fuhao=b.getOperator();
				lianbiao.set(1,fuhao);//改變運算符號
			}
			else if(lianbiao.size()==3)//當有三個接點并且還要輸入符號時,要將前面的進行運算
			{
				String fuhao=b.getOperator();
				String number1=(String)lianbiao.getFirst();
				String number2=(String)lianbiao.getLast();
				String yunsuan=(String)lianbiao.get(1);
				  //下面進行運算
				  try{
					  double n1=Double.parseDouble(number1);
                      double n2=Double.parseDouble(number2);
					  double n=0;//n為運算后的結果
					  if(yunsuan.equals("+"))//加法
					     {
						  n=n1+n2;
					      }
                      else if(yunsuan.equals("-"))//減法
					     {
						  n=n1-n2;
					      }
					  else if(yunsuan.equals("*"))//乘法
					     {
						  n=n1*n2;
					      }
					  else if(yunsuan.equals("/"))//除法
					     {
						  n=n1/n2;
					      }
					  lianbiao.clear();//清空鏈表內記錄
					  lianbiao.add(""+n);
					  lianbiao.add(fuhao);
					  resultShow.setText(""+n);
				      }catch(Exception ee){}
			}
		}
		else if(e.getSource()==dengyu)
		 {
			flag=true;
			if(lianbiao.size()==1||lianbiao.size()==2)
			 {
				String num=(String)lianbiao.getFirst();
				resultShow.setText(""+num);//當只有一個或者兩個數字,則可能一個是數字,而另外是一個數字和一個符號
			  }
			else if(lianbiao.size()==3)
			 {
				String number1=(String)lianbiao.getFirst();
				String number2=(String)lianbiao.getLast();
				String yunsuan=(String)lianbiao.get(1);
                //下面進行運算
				  try{
					  double n1=Double.parseDouble(number1);
                      double n2=Double.parseDouble(number2);
					  double n=0;//n為運算后的結果
					  if(yunsuan.equals("+"))//加法
					     {
						  n=n1+n2;
					      }
                      else if(yunsuan.equals("-"))//減法
					     {
						  n=n1-n2;
					      }
					  else if(yunsuan.equals("*"))//乘法
					     {
						  n=n1*n2;
					      }
					  else if(yunsuan.equals("/"))//除法
					     {
						  n=n1/n2;
					      }
					  resultShow.setText(""+n);
					  lianbiao.set(0,""+n);
					  lianbiao.removeLast();//刪除2,3兩個接點
					  lianbiao.removeLast();
				      }catch(Exception ee){}
			  }
		 }
		else if(e.getSource()==dian)
		 {
              if(lianbiao.size()==0)//鏈表中沒有接點
			    {
					flag=false;
				 }
			   else if(lianbiao.size()==1)
			    {
				   String dot=dian.getLabel();//獲取按鈕上的小數點
				   String num=(String)lianbiao.getFirst();
				   String s=null;
				   if(num.indexOf(dot)==-1)//當數字中已經無小數點時
					{
					   s=num.concat(dot);
					   lianbiao.set(0,s);
				     }
					else//當數字中已經有小數點時
					 {
						s=num;
					 }
				    lianbiao.set(0,s);
					resultShow.setText(s);
			     }
			   else if(lianbiao.size()==3)
			    {
                   String dot=dian.getLabel();
				   String num=(String)lianbiao.getLast();
				   String s=null;
				   if(num.indexOf(dot)==-1)
					{
					   s=num.concat(dot);
					   lianbiao.set(2,s);
				    }
					else
					{
						s=num;
					 }
				  resultShow.setText(s);
			    }
		 }
       else if(e.getSource()==tuige)//退格
		{
		   if(lianbiao.size()==1)//有一個數
			{
			   String num=(String)lianbiao.getFirst();
			   if(num.length()>=1)//該數的長度》=1
				{
				   num=num.substring(0,num.length()-1);
				   lianbiao.set(0,num);
				   resultShow.setText(num);
			     }
		       else
				{
				   lianbiao.removeLast();
				   resultShow.setText("0");
			     }
		
		     }
			else if (lianbiao.size()==3)
			{
				String num=(String)lianbiao.getLast();
				if(num.length()>=1)
				{
					num=num.substring(0,num.length()-1);
					lianbiao.set(2,num);
					resultShow.setText(num);
				}
				else
				{
					lianbiao.removeLast();
					resultShow.setText("0");
				 }
			}
	     }
		else if(e.getSource()==zhengfu)//正負
		{
			if(lianbiao.size()==1)
			{
				String number1=(String)lianbiao.getFirst();
				try{
					double d=Double.parseDouble(number1);
					d=-1*d;
					String str=String.valueOf(d);
					lianbiao.set(0,str);
					resultShow.setText(str);
				   }catch(Exception ee){}
			 }
			 else if(lianbiao.size()==3)
			 {
				 String number2=(String)lianbiao.getLast();
				 try{
					  double d=Double.parseDouble(number2);
					  d=-1*d;
					  String str=String.valueOf(d);
					  lianbiao.set(2,str);
					  resultShow.setText(str);
				    }catch(Exception ee){}
			  }
		 }
		else if(e.getSource()==daoshu)//倒數
		 {
			if(lianbiao.size()==1||lianbiao.size()==2)
			 {
				String number1=(String)lianbiao.getFirst();
				try{
					double d=Double.parseDouble(number1);
					d=1.0/d;
					String str=String.valueOf(d);
					lianbiao.set(0,str);
					resultShow.setText(str);
				   }catch(Exception ee){}
			 }
			 else if(lianbiao.size()==3)
			 {
				 String number2=(String)lianbiao.getLast();
				 try{
					 double d=Double.parseDouble(number2);
					 d=1.0/d;
					 String str=String.valueOf(d);
					 lianbiao.set(0,str);
					 resultShow.setText(str);
				    }catch(Exception ee){}
			  }
		 }
		else if(e.getSource()==qingling)//清零
		{
			flag=false;
			resultShow.setText("0");
			lianbiao.clear();
		}
		 
	}
	public static void main(String args[])
	{
		Calculator calculator=new Calculator();
	}
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图19p| 欧美日韩情趣电影| 国产人成亚洲第一网站在线播放 | 欧美综合一区二区三区| 亚洲黄色小说网站| 欧美理论片在线| 免费av成人在线| 国产欧美精品一区二区三区四区| 高清视频一区二区| 一区二区三区日韩欧美| 欧美三级中文字幕| 精品综合久久久久久8888| 欧美经典一区二区| 一本到不卡免费一区二区| 日韩高清一区二区| 久久久www成人免费无遮挡大片| 波多野结衣中文一区| 亚洲精品久久7777| 日韩欧美精品三级| 99re热视频精品| 日本成人在线电影网| 国产精品免费视频一区| 欧美高清一级片在线| 国产精品18久久久久久久久久久久| 亚洲欧洲国产日本综合| 欧美一区二区在线播放| 成人免费看的视频| 青青青爽久久午夜综合久久午夜 | 91精品国产综合久久精品性色| 精品在线播放午夜| 亚洲一区二区三区在线播放| 精品国产百合女同互慰| 91成人在线观看喷潮| 国产中文一区二区三区| 亚洲韩国一区二区三区| 亚洲国产成人一区二区三区| 欧美日韩mp4| 97se亚洲国产综合自在线| 麻豆精品视频在线| 亚洲自拍另类综合| 欧美国产日产图区| 日韩一区二区三区在线观看| 一本到高清视频免费精品| 黄页网站大全一区二区| 亚洲 欧美综合在线网络| 国产精品久久久久三级| 精品乱人伦一区二区三区| 欧美日韩在线观看一区二区| 成人性生交大片免费看中文| 看国产成人h片视频| 亚洲小少妇裸体bbw| 国产精品区一区二区三区| 911国产精品| 欧美三级韩国三级日本三斤| 成人精品高清在线| 国产成人免费视| 免费在线观看不卡| 亚洲韩国一区二区三区| 亚洲精品伦理在线| 亚洲品质自拍视频| 成人欧美一区二区三区在线播放| 久久久久国产一区二区三区四区 | 欧美亚洲动漫另类| 色综合中文字幕国产| 成人午夜视频网站| 国产剧情在线观看一区二区| 蜜桃视频免费观看一区| 性久久久久久久久| 亚洲h在线观看| 日日欢夜夜爽一区| 五月天久久比比资源色| 午夜在线电影亚洲一区| 婷婷成人激情在线网| 天天操天天干天天综合网| 亚洲第一会所有码转帖| 亚洲福利一区二区三区| 午夜欧美视频在线观看| 日日摸夜夜添夜夜添亚洲女人| 亚洲超碰精品一区二区| 日韩和欧美的一区| 秋霞午夜av一区二区三区| 琪琪久久久久日韩精品| 久久99日本精品| 国产精品亚洲第一区在线暖暖韩国| 国产一区二区三区国产| 国产91丝袜在线观看| 成人动漫在线一区| 一本久久综合亚洲鲁鲁五月天| 91丨九色丨国产丨porny| 欧美综合亚洲图片综合区| 欧美日韩精品欧美日韩精品| 91精品国产麻豆国产自产在线| 制服丝袜中文字幕一区| 精品久久久久久亚洲综合网| 久久久久久**毛片大全| 国产精品九色蝌蚪自拍| 亚洲欧美一区二区三区国产精品| 一区二区三区四区激情| 日韩二区在线观看| 国产精一区二区三区| www.亚洲在线| 欧美精三区欧美精三区| 亚洲精品在线三区| 日韩美女久久久| 午夜日韩在线电影| 欧美精品第1页| 久久久精品中文字幕麻豆发布| 中文字幕欧美日本乱码一线二线| 亚洲欧美国产三级| 免费欧美在线视频| 成人av网站免费| 欧美老肥妇做.爰bbww视频| 精品日产卡一卡二卡麻豆| 国产精品丝袜一区| 日韩精品视频网| 久久先锋影音av鲁色资源网| 国产精品乱人伦中文| 亚洲国产精品久久人人爱蜜臀| 久久精品999| 色综合久久中文字幕综合网| 日韩午夜在线影院| 亚洲视频一区在线观看| 精品一区免费av| 日本韩国一区二区| 国产视频一区在线观看| 午夜在线电影亚洲一区| 99热99精品| 欧美精品一区二区三区在线| 亚洲精品日产精品乱码不卡| 国产精品中文字幕一区二区三区| 欧美综合视频在线观看| 久久精品视频一区| 日本亚洲欧美天堂免费| 日本高清免费不卡视频| 国产亚洲欧美中文| 青青青爽久久午夜综合久久午夜| 色偷偷一区二区三区| 国产性天天综合网| 美女高潮久久久| 欧美喷水一区二区| 亚洲免费观看高清| bt7086福利一区国产| 久久九九影视网| 另类调教123区| 欧美丰满美乳xxx高潮www| 亚洲色图.com| 99精品视频在线免费观看| www激情久久| 极品少妇一区二区| 日韩一区二区三| 五月激情综合网| 色8久久人人97超碰香蕉987| 国产精品天干天干在观线| 国内成人免费视频| 日韩免费观看高清完整版在线观看| 亚洲国产cao| 欧美在线观看一区| 亚洲精品成人少妇| 色婷婷久久99综合精品jk白丝| 亚洲欧美在线观看| 92国产精品观看| 日韩理论在线观看| 91浏览器在线视频| 亚洲欧美色综合| 色久优优欧美色久优优| 亚洲欧美日韩国产综合在线| 91看片淫黄大片一级在线观看| 综合激情成人伊人| 在线看国产日韩| 亚洲精品国产一区二区三区四区在线| 99国产精品一区| 一个色综合av| 欧美羞羞免费网站| 日韩精品欧美精品| 欧美成人欧美edvon| 精品一二三四区| 久久久精品黄色| 不卡av电影在线播放| 国产精品美女久久久久av爽李琼 | 成人a区在线观看| 国产精品久久久久桃色tv| 一本色道久久综合精品竹菊| 夜夜嗨av一区二区三区网页 | 91丝袜高跟美女视频| 亚洲夂夂婷婷色拍ww47| 91麻豆精品国产| 国产伦精品一区二区三区在线观看 | 欧美电影免费观看高清完整版在 | 亚洲综合免费观看高清完整版在线| 欧洲精品中文字幕| 天天操天天干天天综合网| 精品久久一二三区| 国产.欧美.日韩| 亚洲资源在线观看| 欧美成人精品1314www| 国产不卡视频在线播放| 夜色激情一区二区| 日韩久久久精品| 91网上在线视频| 麻豆91免费看|