日期:2014-05-20  浏览次数:20733 次

觉得好菜鸟的,求 给 计算器的 思路。
初步想 独自做 一个 计算器的 项目。
但是开始就觉得不知道怎么做了:
 关键是都不知道怎么累计 ,比如我打击 2 ,都是2 ,不会变成 22.. 大侠给个思路给我好不好。
我想单独做完。。谢谢了


package com.calculator;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class MyAdapter extends KeyAdapter implements ActionListener {


private String previousValue = "0"; // 文本框初始状态为 0

private boolean flag = false; // 用于标记输入的第一个数是否为 0(当第一次输入不为 0
// 时要作为第一个数,进而累加;否则都显示为 0).

public MyAdapter(String value) {
super();
if (!flag) {
if (!"o".equals(value)) {
flag = true;
previousValue = value;
}
} else {
previousValue += value;
}
}

@Override
public void keyPressed(KeyEvent e) { // 键盘输入.
for (int i = 0; i < previousValue.length(); i++) {
if (!Character.isDigit(previousValue.charAt(i))) {
Calculator.textField.setText("您的输入非法!");
} else {
Calculator.textField.setText(previousValue);
}
}

}

@Override
public void actionPerformed(ActionEvent e) { // 鼠标点击.
for (int i = 0; i < previousValue.length(); i++) {
if (!Character.isDigit(previousValue.charAt(i))) {
Calculator.textField.setText("您的输入非法!");
} else {
Calculator.textField.setText(previousValue);
}
}
}
}

这只是 每个按钮的 监听器。
------解决方案--------------------
  
  public void setTextValue(String str){  
        et.append(str);  //et表示文本框中的内容
    } 

输入时按字符串形式这样输入
最后再转换成double类型进行计算
------解决方案--------------------
可查看这个帖子:“?出血了!!整合一套培训时候的视频和笔记很HAPPY,从基础到框架要的可以留个邮箱![ Java SE] ”,内有好的人提供的15个java项目资料,有你需要的东东。
------解决方案--------------------
用多态来写。一个运算一个类  一个父类Calculator 运算类继承他 一个判断具体new哪个运算类的类,页面与逻辑分离
------解决方案--------------------
字符串拼接呗 然后Integer.parseInt()转下