private  boolean firstDigit = true;
private double resultNum = 0.0;
private double number ;
private String operator = "=";
private boolean operateValidFlag = true;
public void show(ActionEvent evt) {
String label = evt.getActionCommand();
if(label.equals("CE")){
jTextField1.setText("");
}else if(label.equals("C")){
handleC();
}else if(label.equals("DEL")){
handleDEL();
}else if("0123456789.".indexOf(label)!= -1){
handleNumber(label);
}else
handleOperator(label); }

private void handleOperator(String key) {
if(key.equals("/")){
resultNum /= getNumberFromText();
}else if(key.equals("+")){
resultNum += getNumberFromText();
}else if(key.equals("-")){
resultNum -= getNumberFromText();
}else if(key.equals("*")){
resultNum *= getNumberFromText();
}else if(key.equals("+/-")){
resultNum = resultNum *(-1);
}else if(key.equals("=")){
resultNum = getNumberFromText();
jTextField1.setText(""+resultNum);
}else if(operateValidFlag){
long t1 = (long)resultNum;
double t2 = resultNum - t1;
if(t2==0){
jTextField1.setText(String.valueOf(t1));
}else 
jTextField1.setText(String.valueOf(resultNum));
}
// operator = label;
firstDigit = true;
operateValidFlag = true;
} //从文本框中获取数字
private double getNumberFromText() {
double result = 0 ;
try {
result = Double.valueOf(jTextField1.getText()).doubleValue();

} catch (NumberFormatException e) {

}
return result;
} private void handleDEL() {
//获得文本框的字符串,赋值给text
String text = jTextField1.getText();
int i = text.length();
if(i > 0){
//获取从角标0到角标总长减一的子串
text = text.substring(0, i-1);
//获取该对象的text,在文本框上显示
jTextField1.setText(text);
}else if(i == 0){
//初始化计算器的各种值
jTextField1.setText("0");
firstDigit = true;
operator = "=";
}else
//显示新文本
jTextField1.setText(text); } private void handleC() {
//初始化计算器的各种值
jTextField1.setText("0");
firstDigit = true;
operator = "=";

}
//处理数字键被按下的事件
private void handleNumber(String label) {
if(firstDigit){
jTextField1.setText(label);
}else if((label.equals(".")) &&(jTextField1.getText().indexOf(".")<0)){
jTextField1.setText(jTextField1.getText()+".");
}else if(!label.equals(".")){
jTextField1.setText(jTextField1.getText()+label);
}
firstDigit = false;
}

解决方案 »

  1.   

    怎么缩进,能具体点吗想必他的意思是你的代码不好看,没有缩进快进键:Ctrl + Shift  +  F  格式化代码但我想着应该不会影响编译,不是这个问题!
      

  2.   

    怎么缩进,能具体点吗帖代码的时候加上标签,在编辑标签栏笑脸前面一个。”[ c o d e = j a v a ]         [ / c o d e ] “  //Java代码  
      

  3.   

    怎么缩进,能具体点吗帖代码的时候加上标签,在编辑标签栏笑脸前面一个。”[ c o d e = j a v a ]         [ / c o d e ] “  //Java代码  
    我这只是一部分代码,没有年贴好。
    帮我看看运算符还有等号,为什么点击运算符等号都没有效果?