우선 구글링 해서 만들어보긴했는데 나머지는 이해가 됩니다.
그런데 String op, in;을 하고
연산자 입력 후 in=\" \"; 들어가는데
in += e.getActionCommand();
System.out.println(in);
way.setText(in);
save = Integer.parseInt(in);
여기에도 들어가는데
이런 부분에서 in이 무슨역할인지 알려주세요.
그리고 in += e.getActionCommand();도 무슨 이유때문에 있어야되는거죠??
밑에 코드
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener{
JTextField way;
int num1, save, result;
String op, in;
boolean finish = false;
JButton num[] = new JButton[16];
@Override
public void actionPerformed(ActionEvent e) {
String input = e.getActionCommand();
if(input.equals(\"+\")) {
num1 = save;
op = \"+\";
in =\"\";
}else if(input.equals(\"-\")) {
num1 = save;
op = \"-\";
in = \"\";
}else if(input.equals(\"*\")) {
num1 = save;
op = \"*\";
}else if(input.equals(\"/\")) {
num1 = save;
op = \"/\";
in = \"\";
}else if(input.equals(\"C\")) {
num1 = 0;
save = 0;
way.setText(\"\");
in = \"\";
}else if(input.equals(\"=\")) {
if(op.equals(\"+\")) {
result = num1 + save;
way.setText(String.valueOf(result));
finish = true;
}else if(op.equals(\"-\")) {
result = num1 - save;
way.setText(String.valueOf(result));
finish = true;
}else if(op.equals(\"*\")) {
result = num1 * save;
way.setText(String.valueOf(result));
finish =true;
}else if(op.equals(\"/\")) {
result = num1 / save;
finish = true;
}
}
else {
if(finish) {
way.setText(\"0\");
finish = false;
save = 0;
num1 = 0;
in = \"\";
}
in += e.getActionCommand();
System.out.println(in);
way.setText(in);
save = Integer.parseInt(in);
}
}
public Calculator() {
super(\"계산기\");
setLayout(new BorderLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300,400);
way = new JTextField(\"\",15);
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
p1.add(way);
p2.setLayout(new GridLayout(4,4,10,10));
String button[] = {\"1\",\"2\",\"3\",\"*\",\"4\",\"5\",\"6\",\"/\",\"7\",\"8\",\"9\",\"+\",\"C\",\"0\",\"=\",\"-\"};
for(int i=0;i<=15;i++) {
num[i] = new JButton(button[i]);
p2.add(num[i]);
num[i].addActionListener(this);
}
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.CENTER);
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
}
니가만들엇다매 변수가 어디서 어떻게 작동하는지도 모르냐
구글링..