?? countercanvas.java
字號:
}
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 + -