大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 Java計(jì)算器代碼是什么

Java計(jì)算器代碼是什么

更新時(shí)間:2021-04-30 11:51:59 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽973次

Java計(jì)算器代碼是什么

package com.test;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.border.LineBorder; 
/**
 * 計(jì)算器
 * @author Administrator
 * 代碼流程:
 * 1.初始化窗口屬性
 * 2.添加顯示框
 * 3.添加按鈕
 * 4.自定義數(shù)字按鈕事件監(jiān)聽(tīng)器
 * 5.自定義運(yùn)算符按鈕事件監(jiān)聽(tīng)器
 * 6.自定義等號(hào)按鈕事件監(jiān)聽(tīng)器
 */
public class CalcFrame extends JFrame{
	private static final long serialVersionUID = 1L;
	private JTextField showView = null;
	private NumberBtnActionListener numberBtnActionListener;
	private LogicBtnActionListener logicBtnActionListener;
	private String logic;//記錄運(yùn)算符的字符串
	private String content1 = "";//記錄第一個(gè)數(shù)字的字符串
	private String content2 = "";//記錄第二個(gè)數(shù)字的字符串		
	/**
	 * 一些窗口的初始化操作,放入構(gòu)造器中(封裝思想)
	 */
	public CalcFrame() {
		//窗口標(biāo)題
		//思考: 調(diào)用方法時(shí)沒(méi)有對(duì)象來(lái)調(diào)用  怎么回事??
		setTitle("java計(jì)算器");
		//窗口位置和大小
		//需要注意的是  這個(gè)坐標(biāo)是相對(duì)于桌面  在桌面的哪個(gè)位置出現(xiàn)
		setBounds(300,150,220, 320);
		//設(shè)置窗口右上角 關(guān)閉按鈕的事件
		//點(diǎn)擊時(shí)關(guān)閉
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//不能改變大小
		setResizable(false);		
		//設(shè)置窗口布局為null  不設(shè)置窗口布局
		setLayout(null);
		/**
		 * 重點(diǎn): 調(diào)用方法,往窗口中添加顯示框
		 */
		addView();		
		/**
		 * 重點(diǎn):調(diào)用方法,往窗口中添加按鈕
		 */
		addButton();		
		//對(duì)象創(chuàng)建完成時(shí),顯示窗口
		setVisible(true);
	}
	/**
	 * 窗口中添加按鈕的方法
	 */
	private void addButton() {
		numberBtnActionListener = new NumberBtnActionListener();
		logicBtnActionListener = new LogicBtnActionListener();
		JButton button_7 = new JButton("7");
		button_7.setBounds(5,65,40,40);
		//設(shè)置按鈕邊框?yàn)?淺灰色 厚度為1
		button_7.setBorder(new LineBorder(Color.lightGray,1));
		button_7.addActionListener(numberBtnActionListener);
		add(button_7);		
		JButton button_8 = new JButton("8");
		button_8.setBounds(60,65,40,40);
		button_8.setBorder(new LineBorder(Color.lightGray,1));
		button_8.addActionListener(numberBtnActionListener);
		add(button_8);		
		JButton button_9 = new JButton("9");
		button_9.setBounds(115,65,40,40);
		button_9.setBorder(new LineBorder(Color.lightGray,1));
		button_9.addActionListener(numberBtnActionListener);
		add(button_9);		
		JButton button_add = new JButton("+");
		button_add.setBounds(170,65,40,40);
		button_add.setBorder(new LineBorder(Color.lightGray,1));
		button_add.addActionListener(logicBtnActionListener);
		add(button_add);		
		JButton button_4 = new JButton("4");
		button_4.setBounds(5,120,40,40);
		//設(shè)置按鈕邊框?yàn)?淺灰色 厚度為1
		button_4.setBorder(new LineBorder(Color.lightGray,1));
		button_4.addActionListener(numberBtnActionListener);
		add(button_4);		
		JButton button_5 = new JButton("5");
		button_5.setBounds(60,120,40,40);
		button_5.setBorder(new LineBorder(Color.lightGray,1));
		button_5.addActionListener(numberBtnActionListener);
		add(button_5);		
		JButton button_6 = new JButton("6");
		button_6.setBounds(115,120,40,40);
		button_6.setBorder(new LineBorder(Color.lightGray,1));
		button_6.addActionListener(numberBtnActionListener);
		add(button_6);		
		JButton button_sub = new JButton("-");
		button_sub.setBounds(170,120,40,40);
		button_sub.setBorder(new LineBorder(Color.lightGray,1));
		button_sub.addActionListener(logicBtnActionListener);
		add(button_sub);				
		JButton button_1 = new JButton("1");
		button_1.setBounds(5,175,40,40);
		//設(shè)置按鈕邊框?yàn)?淺灰色 厚度為1
		button_1.setBorder(new LineBorder(Color.lightGray,1));
		button_1.addActionListener(numberBtnActionListener);
		add(button_1);		
		JButton button_2 = new JButton("2");
		button_2.setBounds(60,175,40,40);
		button_2.setBorder(new LineBorder(Color.lightGray,1));
		button_2.addActionListener(numberBtnActionListener);
		add(button_2);		
		JButton button_3 = new JButton("3");
		button_3.setBounds(115,175,40,40);
		button_3.setBorder(new LineBorder(Color.lightGray,1));
		button_3.addActionListener(numberBtnActionListener);
		add(button_3);		
		JButton button_mul = new JButton("*");
		button_mul.setBounds(170,175,40,40);
		button_mul.setBorder(new LineBorder(Color.lightGray,1));
		button_mul.addActionListener(logicBtnActionListener);
		add(button_mul);				
		JButton button_0 = new JButton("0");
		button_0.setBounds(5,230,40,40);
		//設(shè)置按鈕邊框?yàn)?淺灰色 厚度為1
		button_0.setBorder(new LineBorder(Color.lightGray,1));
		button_0.addActionListener(numberBtnActionListener);
		add(button_0);		
		JButton button_eq = new JButton("=");
		button_eq.setBounds(60,230,40,40);
		button_eq.setBorder(new LineBorder(Color.lightGray,1));
		button_eq.addActionListener(new EqBtnActionListener());
		add(button_eq);		
		JButton button_c = new JButton("c");
		button_c.setBounds(115,230,40,40);
		button_c.setBorder(new LineBorder(Color.lightGray,1));
		button_c.addActionListener(new CleanBtnActionListener());
		add(button_c);		
		JButton button_div = new JButton("/");
		button_div.setBounds(170,230,40,40);
		button_div.setBorder(new LineBorder(Color.lightGray,1));
		button_div.addActionListener(logicBtnActionListener);
		add(button_div);
		
		
	}
	/**
	 * 往窗口添加顯示框的方法  
	 */
	private void addView() {
		//先添加顯示框  只讀編輯框  默認(rèn)顯示0  所以直接在構(gòu)造器中 傳入0  注意 傳入的是字符串才能顯示
		//這里使用成員變量的原因是:在按鈕的事件監(jiān)聽(tīng)器中需要使用顯示框變量,所有使用成員變量來(lái)保存這個(gè)顯示框,其他方法才能訪問(wèn)
		showView = new JTextField("0");
		//需要注意,這里的坐標(biāo)是相對(duì)于窗口內(nèi)部,而不再是桌面。
		showView.setBounds(5, 5, 205, 55);
		showView.setHorizontalAlignment(JTextField.RIGHT);
		//設(shè)置是否可編輯  設(shè)置只讀
		showView.setEditable(false);
		//設(shè)置背景色
		showView.setBackground(new Color(192, 192, 192));
		//設(shè)置字體 粗細(xì) 大小
		showView.setFont(new Font("Cambria", Font.BOLD, 16));
		add(showView);
	}
	public static void main(String[] args) {
		new CalcFrame();
	}
	/**
	 * 使用內(nèi)部類實(shí)現(xiàn)事件監(jiān)聽(tīng)器接口
	 * 數(shù)字按鈕監(jiān)聽(tīng)器
	 * 此監(jiān)聽(tīng)器需要做的事
	 * 1.獲取按鈕內(nèi)容
	 * 2.拼接字符串
	 * 3.保存到第一個(gè)數(shù)字字符串成員變量
	 * 3.轉(zhuǎn)換為數(shù)字
	 * 4.設(shè)置到顯示框
	 * 添加了運(yùn)算符按鈕之后增加的操作
	 * 6.判斷運(yùn)算符有沒(méi)有被點(diǎn)擊
	 * 7.如果點(diǎn)擊了 將拼接的字符串保存到第二個(gè)數(shù)字字符串變量中
	 */
	class NumberBtnActionListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {			
			//2.獲取按鈕內(nèi)容
			JButton btn = (JButton)e.getSource();
			String btn_text = btn.getText();
			if (logic!=null&&!"".equals(logic)) {
				//3.拼接字符串
				content2=content2+btn_text;
				//4.轉(zhuǎn)換為數(shù)字
				int number = Integer.valueOf(content2);
				//5.設(shè)置到顯示框
				showView.setText(number+"");
			}else {
				//3.拼接字符串
				content1=content1+btn_text;
				//4.轉(zhuǎn)換為數(shù)字
				int number = Integer.valueOf(content1);
				//5.設(shè)置到顯示框
				showView.setText(number+"");
			}
		}		
	}
	/**
	 * 清空按鈕事件監(jiān)聽(tīng)器
	 * 1.設(shè)置顯示框內(nèi)容為空
	 * 2.清空數(shù)字字符串
	 * 3.清空運(yùn)算符字符串
	 */
	class CleanBtnActionListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			//1.設(shè)置顯示框內(nèi)容為空
			showView.setText("0");
			//2.清空操作
			content1 = "";
			content2 = "";
			logic = "";
		}		
	}	
	/**
	 * 運(yùn)算符按鈕事件監(jiān)聽(tīng)器
	 * 
	 * 點(diǎn)擊運(yùn)算符按鈕是判斷計(jì)算器前后兩個(gè)數(shù)字的臨界點(diǎn)(臨界操作)
	 * 也就是說(shuō),點(diǎn)擊運(yùn)算符按鈕后,需要將運(yùn)算符保存,供數(shù)字按鈕監(jiān)聽(tīng)器中判斷
	 * 1.獲取運(yùn)算符符號(hào)
	 * 2.保存到成員變量中(為什么要保存到成員變量中)
	 */
	class LogicBtnActionListener implements ActionListener{ 
		public void actionPerformed(ActionEvent e) {
			//1.獲取運(yùn)算符內(nèi)容
			JButton btn = (JButton)e.getSource();
			String logic = btn.getText();
			//2.保存到成員變量中  因?yàn)槌蓡T變量與這個(gè)局部變量名字相同,且this代表的是當(dāng)前監(jiān)聽(tīng)器對(duì)象,所有使用CalcFrame中this
			CalcFrame.this.logic = logic;
		}		
	}
	/**
	 * 等號(hào)按鈕事件監(jiān)聽(tīng)器
	 * 1.將數(shù)字字符串1轉(zhuǎn)換為數(shù)字
	 * 2.將數(shù)字字符串2轉(zhuǎn)換為數(shù)字
	 * 3.對(duì)運(yùn)算符進(jìn)行判斷和運(yùn)算
	 * 4.顯示框顯示內(nèi)容
	 * 5.清空兩個(gè)數(shù)字字符串和運(yùn)算符
	 * @author Administrator
	 *
	 */
	class EqBtnActionListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			if (content1!=null&&!"".equals(content1)&&content2!=null&&!"".equals(content2)&&logic!=null&&!"".equals(logic)) {
				//1.將數(shù)字字符串1轉(zhuǎn)換為數(shù)字
				Integer number1 = Integer.valueOf(content1);
				//2.將數(shù)字字符串2轉(zhuǎn)換為數(shù)字
				Integer number2 = Integer.valueOf(content2);
				//3.判斷運(yùn)算符
				String content = "";
				switch (logic) {
				case "+":
					content = (number1+number2)+"";
					break;
				case "-":
					content = (number1-number2)+"";
					break;
				case "*":
					content = (number1*number2)+"";
					break;
				case "/":
					content = (new Double(number1)/new Double(number2))+"";
					break;
				default:
					break;
				}
				//4.顯示框顯示最終結(jié)果
				showView.setText(content);
				//5.清空操作
				content1 = "";
				content2 = "";
				logic = "";
			}
		}		
	}
}

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Java計(jì)算器代碼是什么"的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久精品国产半推半就 | 亚洲成在人色婷婷 | 亚洲人成在线观看 | 欧美在线免费观看视频 | 99精品热 | 天天色天天拍 | 精品久久久久久中文字幕2017 | 四虎成人免费网站在线 | 中国欧美日韩一区二区三区 | 久久久精品久久视频只有精品 | 精品福利国产 | 国产亚洲玖玖玖在线观看 | 一级网站片 | 在线中文字幕亚洲 | 国产午夜精品不卡视频 | 国产成人在线观看免费网站 | 99尹人香蕉国产免费天天在线 | 看欧美的一级毛片 | 一本色道久久综合亚洲精品 | 人人爽天天碰天天躁夜夜躁 | 久久精品亚洲精品国产欧美 | 成人综合久久精品色婷婷 | 色老久久精品偷偷鲁一区 | 亚洲欧洲一区二区三区在线观看 | 国产黄mmd在线观看免费 | 四虎网站最新网址 | 国产萝控精品福利视频免费 | 天天想夜夜操 | 欧美精品99久久久久久人 | 一道精品视频一区二区三区图片 | 成年香蕉大黄美女美女 | 久久国产欧美日韩精品免费 | 久久在线精品视频 | 成人毛片免费观看视频在线 | 香蕉久久网站 | 亚洲视频在线看 | 色五月情 | 久草精品视频在线播放 | 亚洲 欧美 日韩 综合 | 欧洲一级做a爱在线观看 | 精品国产一级毛片大全 |