package my.day000;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Calculator extends Applet implements ActionListener{
Panel p1, p2;
Button[] bt=new Button[16];
String[] str={"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", "Clear", "=", "+"};
TextField tf1;
String sum=""; //숫자를 저장하는 변수
int x=0, z=0, sum1; //숫자와 연산자의 주소와 임시저장값
int[] num=new int[10]; //숫자를 저장하는 배열
int[] oper=new int[10]; //연산자를 저장하는 배열
public void init(){//-----------------------------
setLayout(new BorderLayout());
p1=new Panel();
p2=new Panel();
tf1=new TextField(24);
add(p1, BorderLayout.CENTER);
add(p2, BorderLayout.NORTH);
p2.add(tf1);
p1.setLayout(new GridLayout(4, 4, 5, 5));
for(int i=0; i<bt.length; i++){
bt[i]=new Button(str[i]);
p1.add(bt[i]);
bt[i].addActionListener(this);
}//for
tf1.setEditable(false);
}//init-----------------------------------
public void actionPerformed(ActionEvent e)//3---------------------------------------
{
String btLabel=e.getActionCommand();
//this.showStatus(btLabel+"을 눌렀다.");
Object obj=e.getSource();
if (btLabel.equals("=")){
int aa=Integer.parseInt(sum);
num[x]=aa;
// x++; // =를 눌렀을 때 현재 값이 안 나온다. 고민 좀 해보자.
for(z=0; z==x; z++){
switch(oper[z]){
case 1:num[z]=num[z]+num[z+1];
case 2:num[z]=num[z]-num[z+1];
case 3:num[z]=num[z]*num[z+1];
case 4:num[z]=num[z]/num[z+1];
}//switch
}//for
tf1.setText(sum=num[z]+"");
} else if (btLabel.equals("Clear")){
sum="";
tf1.setText("");
int x=0, z=0, sum1=0;
int[] num={0,0,0,0,0,0,0,0,0,0};
int[] oper={0,0,0,0,0,0,0,0,0,0};
} else if (btLabel.equals("+")){
int aa=Integer.parseInt(sum);
num[x]=aa; oper[x]=1;
x++; tf1.setText(sum);
sum="";
} else if (btLabel.equals("-")){
int aa=Integer.parseInt(sum);
num[x]=aa; oper[x]=2;
x++; tf1.setText(sum);
sum="";
} else if (btLabel.equals("*")){
int aa=Integer.parseInt(sum);
num[x]=aa; oper[x]=3;
x++;; tf1.setText(sum);
sum="";
} else if (btLabel.equals("/")){
int aa=Integer.parseInt(sum);
num[x]=aa; oper[x]=4;
x++; tf1.setText(sum);
sum="";
} else if (btLabel.equals("7")){
sum+="7";
tf1.setText(sum);
} else if (btLabel.equals("8")){
sum+="8";
tf1.setText("8");
} else if (btLabel.equals("9")){
sum+="9";
tf1.setText(sum);
} else if (btLabel.equals("4")){
sum+="4";
tf1.setText(sum);
} else if (btLabel.equals("5")){
sum+="5";
tf1.setText(sum);
} else if (btLabel.equals("6")){
sum+="6";
tf1.setText(sum);
} else if (btLabel.equals("1")){
sum+="1";
tf1.setText(sum);
} else if (btLabel.equals("2")){
sum+="2";
tf1.setText(sum);
} else if (btLabel.equals("3")){
sum+="3";
tf1.setText(sum);
} else if (btLabel.equals("0")){
sum+="0";
tf1.setText(sum);
}//----------------------------------------------------------------
}//actionperformed
}//class
110줄 정도 되는 계산기인데..........
= 눌렀을 때의 연산과 clear 눌렀을 때의 초기화가 제대로 구실을 못함..........
이거만 가지고 2일째인데............
댓글이 없습니다.