⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 countercanvas.java

📁 用J2ME开发的一个实用软件——计算器。实现了windows系统自带计算器的基本计算功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		}
		if (Integer.parseInt(tmp) <= 2147483647) {
			return tmp;
		} else {
			strMemorizer[0] = "";
			strMemorizer[1] = "";
			strMemorizer[2] = "";
			strMemorizer[3] = "";
			return tmp = "数据溢出!";
		}
	}

	// 向前消除键功能定义
	public void backSpace() {
		if (strMemorizer[4] != null && !strMemorizer[4].equals("零不能为除数!")
				&& !strMemorizer[4].equals("函数无意义!")
				&& !strMemorizer[4].equals("数据溢出!")
				&& !strMemorizer[4].equals("0")
				&& !strMemorizer[4].equals(strMemorizer[3])) {
			strMemorizer[4] = strMemorizer[4].substring(0, strMemorizer[4]
					.length() - 1);
			if (strMemorizer[4].length() == 0) {
				strMemorizer[4] = "0";
				return;
			}
			if (strMemorizer[1] != null) {
				strMemorizer[2] = strMemorizer[4];
				strMemorizer[3] = ""; // 有可能“=”操作中留有数值,故清空
			} else {
				strMemorizer[3] = "";
				strMemorizer[2] = "";
				strMemorizer[1] = "";
				strMemorizer[0] = strMemorizer[4];
				strMemorizer[4] = strMemorizer[0];
			}
		}
		return;
	}

	// 撤销(CE)键功能定义
	public void cancel() {
		if (strMemorizer[3] == null || strMemorizer[3] == "") {
			if (strMemorizer[2] != null && strMemorizer[2] != "") {
				strMemorizer[2] = "0";
				strMemorizer[4] = "0";
				return;
			} else if (strMemorizer[1] != null && strMemorizer[1] != "") {
				strMemorizer[4] = "0";
				strMemorizer[1] = "";
				return;
			} else {
				strMemorizer[0] = "";
				strMemorizer[4] = "0";
				return;
			}
		}
	}

	// 数字键功能定义
	public void getNumber() {
		tmp = "";
		for (i = 0; i < 10; i++) {
			if (index == indexArray[i]) {
				tmp = strNumber[i];
				break;
			} else {
				tmp = "";
			}
		}
		if (n == 3 || n == 17) {
			strMemorizer = new String[5];
			strMemorizer[4] = tmp;
			strMemorizer[0] = tmp;
			return;
		}
		if (strMemorizer[1] == null || strMemorizer[1] == "") {
			if (strMemorizer[0] == null || strMemorizer[0] == "") {
				strMemorizer[4] = tmp;
				strMemorizer[0] = strMemorizer[4];
				return;
			} else if (Integer.parseInt(strMemorizer[0]) <= 214748363) {
				strMemorizer[4] = String.valueOf(Integer
						.parseInt(strMemorizer[0] + tmp));
				strMemorizer[0] = strMemorizer[4];
				return;
			} else {
				strMemorizer[4] = "数据溢出!";
				strMemorizer[0] = "";
				strMemorizer[1] = "";
				strMemorizer[2] = "";
				strMemorizer[3] = "";
				return;
			}
		} else if (strMemorizer[2] == null || strMemorizer[2] == "") {
			strMemorizer[4] = tmp;
			strMemorizer[2] = strMemorizer[4];
			return;
		} else if (Integer.parseInt(strMemorizer[2]) <= 214748363) {
			strMemorizer[4] = String.valueOf(Integer.parseInt(strMemorizer[2]
					+ tmp));
			strMemorizer[2] = strMemorizer[4];
			strMemorizer[3] = "";
			return;
		} else {
			strMemorizer[4] = "数据溢出!";
			strMemorizer[0] = "";
			strMemorizer[1] = "";
			strMemorizer[2] = "";
			strMemorizer[3] = "";
		}
	}

	// 运算符号键功能定义
	public void getOperator() {
		tmp = "";
		for (i = 0; i < 4; i++) {
			if (index == indexFh[i]) {
				tmp = String.valueOf(fh[i]);
				if (strMemorizer[0] == null || strMemorizer[0] == "") {
					if (index == 15) {
						strMemorizer[0] = "0";
						strMemorizer[1] = "-";
						return;
					}
				} else if (strMemorizer[2] == null || strMemorizer[2] == "") {
					strMemorizer[1] = tmp;
					return;
				} else {
					if (n == 3) {
						strMemorizer[0] = strMemorizer[4];
						strMemorizer[1] = tmp;
						strMemorizer[2] = "";
						strMemorizer[3] = "";
						return;
					} else {
						String str = tmp; // 需要传递一下中间变量,否则符号位被错误传值
						strMemorizer[3] = operation(strMemorizer[0]
								+ strMemorizer[1] + strMemorizer[2]);
						strMemorizer[4] = strMemorizer[3];
						strMemorizer[0] = strMemorizer[3];
						strMemorizer[1] = str;
						strMemorizer[2] = "";
						strMemorizer[3] = "";
						return;
					}
				}
			} else {
				tmp = "";
			}
		}
	}

	// 等号键功能定义
	public void amount() {
		tmp = "";
		if (strMemorizer[1] == null || strMemorizer[1] == "") {
			if (strMemorizer[0] == null || strMemorizer[0] == "") {
				strMemorizer[4] = "0";
				return;
			} else {
				strMemorizer[4] = strMemorizer[0];
				return;
			}
		} else if (strMemorizer[2] == null || strMemorizer[2] == "") {
			tmp = strMemorizer[0];
			strMemorizer[2] = tmp;
			tmp = "";
		}
		strMemorizer[3] = operation(strMemorizer[0] + strMemorizer[1]
				+ strMemorizer[2]);
		tmp = strMemorizer[3];
		strMemorizer[0] = tmp;
		strMemorizer[4] = tmp;
		strMemorizer[3] = "";
		// 不能清strMemorizer[2],如果清了strMemorizer[2],则后面再按“=”键时,计算器会出现功能性错误
	}

	// 正负号键(非零取反)功能定义(紧接输入符号为“=”和其它运算符时实现功能不同)
	public void sign() {
		if (strMemorizer[4] != null && !strMemorizer[4].equals("零不能为除数!")
				&& !strMemorizer[4].equals("函数无意义!")
				&& !strMemorizer[4].equals("数据溢出!") && strMemorizer[4] != ""
				&& strMemorizer[4] != "0") {
			if (strMemorizer[2] != null && strMemorizer[2] != "") {
				if (n == 3) {
					if (strMemorizer[4].charAt(0) == '-') {
						tmp = strMemorizer[4].substring(1, strMemorizer[4]
								.length());
					} else {
						tmp = "-" + strMemorizer[4];
					}
					strMemorizer[4] = tmp;
					return;
				} else {
					if (strMemorizer[2].charAt(0) == '-') {
						tmp = strMemorizer[2].substring(1, strMemorizer[2]
								.length());
					} else {
						tmp = "-" + strMemorizer[2];
					}
					strMemorizer[2] = tmp;
					strMemorizer[4] = tmp;
					return;
				}
			} else if (strMemorizer[1] == null || strMemorizer[1] == "") {

				if (strMemorizer[0].charAt(0) == '-') {
					tmp = strMemorizer[0]
							.substring(1, strMemorizer[0].length());
				} else {
					tmp = "-" + strMemorizer[0];
				}
				strMemorizer[0] = tmp;
				strMemorizer[4] = tmp;
				return;
			} else { // 注意与运算符和等号、数字键功能的匹配
				strMemorizer[2] = "";
				tmp = operation(strMemorizer[0] + strMemorizer[1] + "0");
				strMemorizer[0] = tmp;
				strMemorizer[1] = "";
				strMemorizer[3] = "";
				strMemorizer[4] = "0";
			}
		}
	}

	// 归零键(清屏)功能定义
	// 屏显清零(显示为0),同时暂存变量清空
	public void clsZero() {
		strMemorizer = new String[5];
		tmp = "";
		strMemorizer[4] = "0";
	}

	// 显示清空
	public void cls(Graphics g) {
		g.drawImage(igui1, this.getWidth() / 2, 38, Graphics.TOP
				| Graphics.HCENTER);
	}

	// 显示或输出写屏
	public void drawScreen(String s, Graphics g) {
		cls(g);
		if (s != null && s != "") {
			if (s.equals("零不能为除数!")) {
				g.drawImage(igs1, getWidth() / 2, 49, Graphics.TOP
						| Graphics.HCENTER);
				strMemorizer[0] = "";
				strMemorizer[1] = "";
				strMemorizer[2] = "";
				strMemorizer[3] = "";
			} else if (s.equals("函数无意义!")) {
				g.drawImage(igs2, getWidth() / 2, 49, Graphics.TOP
						| Graphics.HCENTER);
				strMemorizer[0] = "";
				strMemorizer[1] = "";
				strMemorizer[2] = "";
				strMemorizer[3] = "";
			} else if (s.equals("数据溢出!")) {
				g.drawImage(igs3, getWidth() / 2, 49, Graphics.TOP
						| Graphics.HCENTER);
				strMemorizer[0] = "";
				strMemorizer[1] = "";
				strMemorizer[2] = "";
				strMemorizer[3] = "";
			} else {
				int offSet; // 偏移变量
				for (int i = s.length() - 1; i >= 0; i--) {
					if (s.charAt(0) == '-') {
						if (i == 0) {
							offSet = 10;
						} else {
							offSet = Integer.parseInt(s.substring(i, i + 1));
						}
					} else {
						offSet = Integer.parseInt(s.substring(i, i + 1));
					}
					g.setClip(205 - (s.length() - 1 - i) * 15, 47, 15, 27);
					g.drawImage(igNumber,
							205 - ((s.length() - 1 - i) + offSet) * 15, 47,
							Graphics.TOP | Graphics.LEFT);
					g.setClip(0, 0, this.getWidth(), this.getHeight());
				}
			}
		}
	}

	// 获取上次按下的按键索引号
	public int anteriorIndex() {
		aheadKeycode[1] = aheadKeycode[0];
		aheadKeycode[0] = index;
		return aheadKeycode[1];
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -