// TODO 自动生成方法存根 if (!bInsert) return; if(sum+temp*100 > 100000) return; String command = e.getActionCommand(); System.out.println(command); switch (status) { case S_INIT: case S_ADD: if (command.charAt(0) >= '0' && command.charAt(0) <= '9') { temp = temp * 10 + Integer.parseInt(command); break; } sum += temp*100; temp = 0; if (command == "+") { return; } if (command == "-") { status = S_SUB; return; } if (command == ".") { dec = "0."; status = S_ADD_POINT; return; } case S_SUB: if (command.charAt(0) >= '0' && command.charAt(0) <= '9') { temp = temp * 10 - Integer.parseInt(command); break; } sum += temp*100; temp = 0; if (command == "+") { status = S_ADD; return; } if (command == "-") { return; } if (command == ".") { dec = "-0."; status = S_SUB_POINT; return; } case S_ADD_POINT: if (command.charAt(0) >= '0' && command.charAt(0) <= '9') { if(dec.length() >= 4) break; dec += command; break; } if (command == "+") { String str = String.valueOf((Double.parseDouble(dec)*100)); sum += Integer.parseInt(str.substring(0, str.lastIndexOf('.'))); dec = null; status = S_ADD; return; } if (command == "-") { String str = String.valueOf((Double.parseDouble(dec)*100)); sum += Integer.parseInt(str.substring(0, str.lastIndexOf('.'))); dec = null; status = S_SUB; return; } break; case S_SUB_POINT: if (command.charAt(0) >= '0' && command.charAt(0) <= '9') { if(dec.length() >= 5) break; dec += command; break; } if (command == "+") { String str = String.valueOf((Double.parseDouble(dec)*100)); sum += Integer.parseInt(str.substring(0, str.lastIndexOf('.'))); dec = null; status = S_ADD; return; } if (command == "-") { String str = String.valueOf((Double.parseDouble(dec)*100)); sum += Integer.parseInt(str.substring(0, str.lastIndexOf('.'))); dec = null; status = S_SUB; return; } break; } int t = 0; if (dec != null){ String str = String.valueOf((Double.parseDouble(dec)*100)); t = (sum + temp *100+Integer.parseInt(str.substring(0, str.lastIndexOf('.')))); if(balance - t < 0||t<0){ JOptionPane.showMessageDialog(this, "余额不足!"); reset(); sCurrent.display(0); sBalance.display(balance); return; } sCurrent.display(t); sBalance.display(balance - t); } else{ t = sum + temp * 100; if(balance - t < 0 || t<0){ JOptionPane.showMessageDialog(this, "余额不足!"); reset(); sCurrent.display(0); sBalance.display(balance); return; } sCurrent.display(t); sBalance.display(balance - t); }